面试-字符串1

应用

第1个字符串:R
第2个字符串:BR
第3个字符串:RBBR
第4个字符串:BRRBRBBR
规律:第i个字符串 = 第i-1个字符串取反 + 第i-1个字符串,其中B、R互为相反字符。求第n个字符串的第k个字符为多少?n从1开始、k从0开始。

实现

N = int(input("请输入第几个字符串:"))
K = int(input("请输入第几个字符:"))

first_string = "R"
current_chars = list(first_string)

#print(current_chars)
print(first_string)

def Nth_string(N, K, current_chars):
    
    next_chars = []

    if N == 1:
        # pass
        print(f"目标字符为:{current_chars[K]}")
    else:

      for i in range(0, len(current_chars)):
        
          if current_chars[i] == "R":
              next_chars.append("B")
          else:
              next_chars.append("R")
        
      for j in range(0, len(current_chars)):

          next_chars.append(current_chars[j])

      
      #print(next_chars)
      
      next_string = ""
      for k in next_chars:
          next_string = next_string + k
      print(next_string)

      Nth_string(N-1, K, next_chars)

    

Nth_string(N, K, current_chars)
请输入第几个字符串:5
请输入第几个字符:3
R
BR
RBBR
BRRBRBBR
RBBRBRRBBRRBRBBR
目标字符为:R

你可能感兴趣的:(算法与数据结构,python)