码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode 38 Count and Say

时间:2019-06-03 12:45:55      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:end   bsp   div   stringbu   har   dsa   rev   else   nbsp   

一个prev保存前一个状态,一个cur保存这次的状态每次按题意操作prev,然后赋值给cur

如何按题意操作呢?

1

11

21

1211

111221

一个变量say保存到目前为止相同的值,直到say和prev[i]不同,就给cur插入say的个数,和say的值,然后更新say为prev[i]

 1 class Solution {
 2     public String countAndSay(int n) {
 3         StringBuilder cur = new StringBuilder("1");
 4         //char say = cur.charAt(0);
 5         
 6         for(int i=1; i<n; i++){
 7             StringBuilder prev = cur;
 8             cur = new StringBuilder();
 9             int count = 1;
10             char say = prev.charAt(0);
11             
12             for(int j=1; j<prev.length(); j++){
13                 if(prev.charAt(j) != say){
14                     cur.append(count).append(say);
15                     count = 1;
16                     say = prev.charAt(j);
17                 }else{
18                     count++;
19                 }
20             }
21             cur.append(count).append(say);
22         }
23         return cur.toString();
24     }
25 }

 

leetcode 38 Count and Say

标签:end   bsp   div   stringbu   har   dsa   rev   else   nbsp   

原文地址:https://www.cnblogs.com/hwd9654/p/10966587.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!