LeetCode之count-and-say sequence
2016-07-22 14:56
489 查看
问题描述:
开始为1,第1个数就是1个1,即11,第2个数就是2个1,即21,第3个数是1个2,1个1,即1211.第4个数是1个1,1个2,2个1,即111221。每次后面的数都是对前面一个数的“数”和“说”。现在让你求第n个数是什么?
代码如下:
/** * 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. */
开始为1,第1个数就是1个1,即11,第2个数就是2个1,即21,第3个数是1个2,1个1,即1211.第4个数是1个1,1个2,2个1,即111221。每次后面的数都是对前面一个数的“数”和“说”。现在让你求第n个数是什么?
代码如下:
public static String countAndSay(int n) { StringBuilder s1=new StringBuilder("1"); StringBuilder s2=new StringBuilder(""); for(int i=0;i<n;i++) { int j=0; int len=s1.length(); while(j<len) { int count=1; char c= s1.charAt(j);//获取前面数的每一位 while(j<len-1&&s1.charAt(j)==s1.charAt(j+1))//统计相同的位数 { count++; j++; } s2.append(count+"");//有几个相同的位,则在结果中追加其个数count s2.append(c);//再追加这个重复的数字 if(j==len-1) { break; } j++; } s1=s2; s2=new StringBuilder(); } return s1.toString(); }
相关文章推荐
- fade
- 46.Which two statements are true about the Automatic Database Diagnostic Monitor (ADDM)? (Choose two
- 熊先生做原型之对于原型设计中高保真的理解
- 45.Which statement is true about the Manageability Monitor (MMON) background process?
- delay
- iOS开发之有间距的UITableViewCell
- iPhone/iPad/Android UI尺寸规范 UI尺寸规范,UI图标尺寸,UI界面尺寸,iPhone6尺寸,iPhone6 Plus尺寸,安卓尺寸,iOS尺寸
- android ui更新
- finished with non-zero exit value 1
- Android UI的一些常见属性总结注意点
- Android UI的一些常见属性总结注意点
- Android UI的一些常见属性总结注意点
- Android UI的一些常见属性总结注意点
- EasyUI为combobox下拉框后扩展操作按钮
- Android酷炫实用的开源框架(UI框架)
- 简单处理UICollectionview的淡出效果
- Failed to read auto-increment value from storage engine 诡异的mysql自增无效问题
- UICollectionView 横向滑动停止的两种效果。
- 数据库管理工具——SQuirreL SQL Client使用入门
- 解决UINavigationController在pushViewController时出现的"卡顿"问题