38. Count and Say序列 Count and Say

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.

求出Count and Say序列的第N项

  1. public class Solution {
  2. public string CountAndSay(int n) {
  3. string str = "1";
  4. for (int i = 0; i < n-1; i++) {
  5. str = GetNewString(str);
  6. }
  7. return str;
  8. }
  9. public string GetNewString(string str) {
  10. StringBuilder newStr = new StringBuilder();
  11. int count = 1;
  12. for (int i = 1; i < str.Length; i++) {
  13. if (str[i] != str[i - 1]) {
  14. newStr.Append(count.ToString() + str[i - 1].ToString());
  15. count = 1;
  16. } else {
  17. count++;
  18. }
  19. }
  20. newStr.Append(count.ToString() + str[str.Length - 1]);
  21. return newStr.ToString();
  22. }
  23. }

null

时间: 2024-10-21 02:42:41

38. Count and Say序列 Count and Say的相关文章

COUNT(*),count(1),COUNT(ALL expression),COUNT(DISTINCT expression)

创建一个测试表 1 IF OBJECT_ID( 'dbo.T1' , 'U' 2 )IS NOT NULL 3 BEGIN 4 DROP TABLE dbo.T1; 5 END; 6 GO 7 CREATE TABLE dbo.T1( column_1 int ,column_2 varchar(30)); 8 GO 9 10 11 INSERT INTO dbo.T1( column_1 , column_2 ) 12 VALUES( 1 , '123') , ( 2 , '1234') ,

hql中不能写count(1)可以写count(a.id)

hql中不能写count(1)可以写count(a.id)里面写具体的属性 String hql="select new com.haiyisoft.vo.entity.cc.repo.BusinessStat(  r.paramName ,t.paramName , " +" (select nvl(count(1),0) " +" from com.haiyisoft.entity.cc.busi.Business b,com.haiyisoft.en

sql中奇怪的sum(1),sum(2),count(1),count(6),count(*):统计总数

sql的统计函数 sql统计函数有 count 统计条数,配合group用 sum 累加指定字段数值 但注意sum(1)就特殊 sum(1)等同于count(*) sum(1)统计个数,功能和count(*)一样,但效率上count(*)高.所以尽量少用. 举个小例子 SELECT ad_network_id,,sum(1),count(*),sum(2),count(5) from mapping_table_analytics GROUP BY ad_network_id 运行结果为: 3

select count(1) 和 select count(*)的区别

统计一个表T有多少行数据,通常写法是: 查询A:select count(*) from T 但也可以采用下面语句来查: 查询B:select count(1) from T 结果通常是一样的.那么二者区别在哪里呢? 如果T表是个很大的表,那么查询速度将有显著的差异.实践中T表有4200万行,采用查询B,耗时3分多钟,而采用查询A,则耗时不到1秒.可见在大表的查询上必须非常谨慎. 那么为什么查询A比查询B快呢? 个人分析认为,查询A不需要过滤,直接用末行位置-首行位置/每行占用位置.而查询B,因

jsp中:jsp声明与jsp脚本&lt;%! int count=0;%&gt; 与&lt;% int count=0;%&gt;

<body> <%!int count; %> <%int count2=0; %> 输出声明时候的count:<%=count++ %> <br> 输出脚本的count2:<%=count2++ %> <br> </body>每次刷新该jsp页面时对应的输出结果count每刷新一次增加1 count2每刷新一次 不变 分析: 因为count是jsp中声明的变量,当jsp编译成servlet时,cout是该se

mysql 不同条件count ,多条件count()

create table abc(A int,B int) Select A,count(B) as total from ABC group by A Select A,count(B) as total1 from ABC where B > 30 group by A Select A,count(B) as totlal2 from ABC where B > 20 group by A 如何合并这三个查询?得到一个查询结果:A,total,total1,total2 答: Selec

Count(*)与count(age)区别

Count(*)表示取得所有记录,忽略null,为null值也会取得. 采用count(字段名称),不会取得为null的纪录. 注意:在mysql和oracle中都适用. 原文地址:https://www.cnblogs.com/2016-cxp/p/11026851.html

select count(1)和 select count(*)

count(1),其实就是计算一共有多少符合条件的行. 1并不是表示第一个字段,而是表示一个固定值. 其实就可以想成表中有这么一个字段,这个字段就是固定值1,count(1),就是计算一共有多少个1. 同理,count(2),也可以,得到的值完全一样,count('x'),count('y')都是可以的.一样的理解方式.在你这个语句理都可以使用,返回的值完全是一样的.就是计数. count(*),执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低

38. Count and Say [easy] (Python)

题目链接 https://leetcode.com/problems/count-and-say/ 题目原文 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 re