LeetCode 38 Count and Say
2015-10-04 15:25
459 查看
Count and Say
The count-and-say sequence is the sequence of integers beginning as follows:
Given an integer n, generate the nth sequence.
Note: The sequence of integers will be represented as a string.
解题思路:这道题就是一道字符串处理的问题,题意就是把上一个字符串的读数作为下一个字符串,然后依次类推。理解题意之后比较容易,但要注意结尾的地方,要增加判断前一个是重复的结尾,还是非重复的结尾。
代码如下:
这里提空一个更加优雅的解法,直接从1开始,比我的泛化能力更强。
http://blog.csdn.net/linhuanmars/article/details/20679963
The count-and-say sequence is the sequence of integers beginning as follows:
1, 11, 21, 1211, 111221, ...
1is read off as
"one 1"or
11.
11is read off as
"two 1s"or
21.
21is 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.
解题思路:这道题就是一道字符串处理的问题,题意就是把上一个字符串的读数作为下一个字符串,然后依次类推。理解题意之后比较容易,但要注意结尾的地方,要增加判断前一个是重复的结尾,还是非重复的结尾。
代码如下:
public String countAndSay(int n) { if(n==1){ return "1"; } if(n==2){ return "11"; } String s = String.valueOf(11); for (int i = 3; i <= n; i++) { int index=0; int count =1; String s1 = new String(); int len = s.length(); int type =0; while(index<len-1){ char c = s.charAt(index); if(c==s.charAt(index+1)){ count++; type=1; }else{ s1+=count; s1+=c; count=1; type=0; } index++; if(index>=len-1){ if(type==1){ s1+=count; s1+=c; }else{ s1+=1; s1+=s.charAt(index); } s=s1; break; } } } return s; }
这里提空一个更加优雅的解法,直接从1开始,比我的泛化能力更强。
http://blog.csdn.net/linhuanmars/article/details/20679963
相关文章推荐
- Material Design: NavigationView FlaotingActionBar SnackBar采用
- 杭电acm1098
- iOS开发-------自定义简单的表情键盘(UICollectionView 集合视图)
- Android 手机常用方法
- 现代C++
- 现代C++
- 程序员和代码
- 程序员和代码
- 20151004考试总结
- 127. Word Ladder (Tree, Queue; WFS)
- 点击按钮没反应,或者有时有反应有时没反应
- 66. Plus One | leetcode 66 Java 最短代码实现
- 【Violet3】【BZOJ2716】天使玩偶
- ISLR系列:(3)重采样方法 Cross-Validation & Bootstrap
- leetcode 289: Game of Life
- 计算文件夹大小
- UITextView 的placeholder
- LintCode 两数之和
- svn服务器权限配置
- 【Linux驱动】I2C驱动编写要点