面试-字符串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