[LeetCode]题解(python):038-Count and Say

题目来源:

  https://leetcode.com/problems/count-and-say/


 

题意分析:

  字符串列符合这样的规则:连续出现字符的次数+上这个字符。比如“11”就是2个1,也就是得到“21”。初始字符串是“1”。输入一个正整数n,输出满足这个规则的第n个数。


 

题目思路:

  这是一道简单题。写一个函数,输入一个字符串,得到满足规则的下一个字符串。重复这个函数n次就可以了。


 

代码(python):

  

 1 class Solution(object):
 2     def countStr(self,s):
 3         count = 0;ans = "";tmp = s[0]
 4         for i in range(len(s)):
 5             if s[i] == tmp:
 6                 count += 1
 7             else:
 8                 ans += str(count) + tmp
 9                 tmp = s[i];count = 1
10         ans += str(count) + tmp
11         return ans
12     def countAndSay(self, n):
13         """
14         :type n: int
15         :rtype: str
16         """
17         ans = '1'
18         while n > 1:
19             ans = self.countStr(ans)
20             n -= 1
21         return ans
View Code

 


 

转载请注明出处:http://www.cnblogs.com/chruny/p/4926290.html

转载于:https://www.cnblogs.com/chruny/p/4926290.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值