程序在Python的Look and Say Sequence中查找第n个术语
假设我们有一个数字n,我们必须按“查找并说出”顺序生成第n个项。这是一个序列,其几个术语如下-
1
11
21
1211
111221
该字符串将被读取为
1(一)
11(一个1)因此,请阅读前一个1,然后说“一个1”
21(两个1)所以请阅读前面的11,然后说“两个1”
1211(一个211)所以请阅读前面的21,然后说“一个211”
111221(一个1一221)所以请阅读前面的1211,然后说“一个1一2221”
假设我们有一个数字n,1<=n<=30,那么我们必须生成第n个项。为了解决这个问题,我们将遵循这种方法-
设置s:=“1”
如果n=1,则返回s
对于我:=2到n+1
如果curr为空字符串,则
否则,如果curr是s[j],则
除此以外:
curr:=s[j],count:=1并将j增加1
将计数和j增加1
temp:=temp+算作字符串+curr
curr=空字符串
计数:=0
j:=0
temp:=空字符串
curr=空字符串并计数:=0
当j<s的长度时
temp:=temp+算作字符串+curr
返回s
让我们看下面的实现以更好地理解-
示例
class Solution(object):
def solve(self, n):
s = "1"
if n == 1:
return s
for i in range(2,n+1):
j = 0
temp = ""
curr = ""
count = 0
while j <len(s):
if curr =="":
curr=s[j]
count=1
j+=1
elif curr == s[j]:
count+=1
j+=1
else:
temp+= str(count) + curr
curr=""
count = 0
temp+=str(count) + curr
s=temp
return s
ob = Solution()n = 5
print(ob.solve(n))输入值
5
输出结果
"111221"
热门推荐
2 庆双节祝福语简短
10 小红书平安祝福语简短
11 六一互换礼物祝福语简短
12 端午发给客户祝福语简短
13 祝福语大全简短赞美同学
14 简短朋友旅行祝福语大全
15 许嵩生日祝福语简短
16 诗词文案祝福语简短精辟
17 中秋祝福语送朋友简短
18 生日祝福语大全女孩简短