首页 > 学院 > 开发设计 > 正文

数一数与读一读

2019-11-14 09:09:48
字体:
来源:转载
供稿:网友

Count and Say


https://leetcode.com/PRoblems/count-and-say/ leetcode 38

思路:

i指向字符串的第一个字母,然后用j往后移动,记录s[i]与s[j]相等的字符的个数count;把count变成相应的字符push_back到目标字符串中,把s[i]push_back到目标字符串中i指向下一个不同的字符(即当前j的值)如此循环

代码:

string countNext(string s){ //计算下一个字符串 int len = s.length(); int i = 0; string ans; while (i<len) { int j=i; int count = 0; while (s[i]==s[j]&&j<len) { count++; j++; } ans.push_back(count+'0'); //注意:并不是push_back(count),因为count为int,我们需要把它变成相应的字符 ans.push_back(s[i]); i = j; } return ans;}string countAndSay(int n) { //计算第n个字符串 string ans="1"; for (int i=1; i<n; i++) { ans = countNext(ans); } return ans;}ans.push_back(count+’0’); //注意:并不是push_back(count),因为count为int,我们需要把它变成相应的字符
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表