本文共 1075 字,大约阅读时间需要 3 分钟。
「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:
1
11
21
1211
111221
1 被读作 “one 1” (“一个一”) , 即 11。
11 被读作 “two 1s” (“两个一”), 即 21。 21 被读作 “one 2”, “one 1” (“一个二” , “一个一”) , 即 1211。给定一个正整数 n(1 ≤ n ≤ 30),输出外观数列的第 n 项。
注意:整数序列中的每一项将表示为一个字符串。
class Solution {public: string countAndSay(int n) { string ass; string res="1"; while(n-1){ int i=0; while(i < res.size()){ if(i+2 < res.size() && res[i] == res[i+1] && res[i] == res[i+2]){ ass.push_back('3'); ass.push_back(res[i]); i=i+3; } if(i+1 < res.size() && res[i] == res[i+1]){ ass.push_back('2'); ass.push_back(res[i]); i=i+2; } else{ ass.push_back('1'); ass.push_back(res[i]); i++; } } res=ass; ass=""; n--; } return res; }};
通过时间:
转载地址:http://hiemb.baihongyu.com/