LeetCode刷题-38.外观数列
题目链接:38.外观数列
¶题解:
嗯,做这种题得有宏观思想,我就是被细小地方搞混乱了!
也是双指针的思想。
¶题目简述:
给定一个序列1
,接下来每一项都是前一项的描述,详细请看官网描述!
¶题解:
说白了,就是从前一项找到相同的字符的起始位置即可。。
例如:12233344
只要能分成1
、22
、333
、44
四段即可!
具体思路:
借助双指针思想,一个指向该段起点j
,一个指向该段最后一个位置的下一个位置k
即可。该段的长度就是k - j
,该段的字符就是s[j]
。
即最终为t += to_string(k - j) + s[j]
注意 :使用两个变量来回切换,s
指向上一个,t
指向当前。以及j = k
,来进行动态跳转到下一段位置起点!
关于 to_string():
C++11支持的转换字符串函数,在这里如果不使用这个函数,也可以通过'0' + k - j
,但是这样有个缺点,不能超过ASCII码的范围!
¶AC代码:
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小牛博客!
评论