leetcode_38. Count and Say 统计数字个数并说出来,组成新的字符串
来源:互联网 发布:在淘宝开网店收费吗 编辑:程序博客网 时间:2024/05/19 07:27
题目:
The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...
1
is read off as "one 1"
or 11
.11
is read off as "two 1s"
or 21
.21
is read off as "one 2
, then one 1"
or 1211
.
Given an integer n, generate the nth sequence.
Note: The sequence of integers will be represented as a string.
题意:
统计序列中数字个数,并说出来,组成新的序列。 例如,序列1211,首先含有1个1,产生新的序列为11(第一个1表示1的个数,第二个1表示统计的对象1),然后有1个2,产生的序列为12,最后又接着2个1,产生的序列为21。故三段连在一起,1211产生的序列为111221
现在给定n,写一个函数,求出第n个序列。
代码:
class Solution(object):
def countAndSay(self, n):
"""
:type n: int
:rtype: str
"""
result = ''
if n <= 0 : #测试发现,‘1’是第一个序列
return result
else :
result += str(1) #result记录第i个序列
for i in range(1,n) : #迭代n次,求出第n个序列
temp = '' #temp记录由result产生的第i+1个序列
j = 0 #每一次迭代,从result的下标0开始
while j < len(result) : #在result里面,j可以为result的最后一个元素
count = 1 #对当前的result[j],count记录相同的result[j]的个数,初始化为1,默认有一个result[j]
while j < len(result)-1 and result[j] == result[j+1] : #j < len(result)-1:表示j后面还有字符。如果j后面还有字符,且后面的字符与当前的相同,count加1
count += 1 #统计相同的result[j]的个数
j += 1
temp += str(count) #将result[j]的个数以及result[j]一起构成新的字符串
temp += result[j]
j += 1 #继续计算result中的下一段
result = temp #进行下一次迭代
return result
笔记:
代码一次通过,效率还可以
表示下标变换有点磨人
- leetcode_38. Count and Say 统计数字个数并说出来,组成新的字符串
- LeetCode_38---Count and Say
- leetcode_38. Count and Say
- 【字符串】Count and Say
- 字符串---Count and Say
- Count and Say:循环记录字符串中数字个数
- leetcode---count-and-say---字符串
- 字符串的统计字符串(count and say类似题目)
- Count and Say 数数并打印 @LeetCode
- [leetcode] 【字符串】 38. Count and Say
- 3.12—字符串—Count and Say
- 字符串---统计数字个数
- 字符串中筛选数字 并且统计数字个数并输出最大值
- 【C++】数数:用数字来数数Count and Say
- LeetCode: Count and Say
- [LeetCode]Count and Say
- LeetCode Count and Say
- [Leetcode] Count and Say
- JQuery-AJAX使用
- 再谈网游同步技术:实时动作游戏同步方式和传输协议选择
- [清华集训2015]V
- Struts2的执行流程
- nignx启动80端口一直占用
- leetcode_38. Count and Say 统计数字个数并说出来,组成新的字符串
- Struts2中的拦截器
- javaweb三大框架SSH解读
- Mac Python建立简单的本地服务器
- java引用计数
- P1007排座椅
- 为什么同样是pom文件里面的架包jar,显示的图标不一样。以及maven中snapshot快照库和release发布库的区别和作用
- Cocos2dx 场景切换 反向传值
- Fuel 9.0安装Openstack网络验证失败解决