题解 | #压缩算法#
压缩算法
http://www.nowcoder.com/practice/ebf85b76361245f4a3ac273e6876c662
- 注意常用的一些脚标的细节。以及此题涉及的字符串使用,以及指针滑动逻辑
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @return string字符串 */ string compress(string str) { // write code here int i =0; while(i<str.size()){ if(str[i]==']'){ int j = i;////j用来向前寻找与]相匹配的[ int k = 0;//k用来记录'|'所在位置 while(str[j]!='['){ if(str[j]=='|'){ k = j; } j--; } int len = stoi(str.substr(j+1,k-j-1)); string s2 = str.substr(k+1,i-k-1); string s1 = ""; for(int i =0; i< len;i++){ s1+=s2; } str = str.replace(j,i-j+1,s1);//替换 i = j;//从替换位开始比较(向后) } i++; } return str; } };
大厂笔试题题解 文章被收录于专栏
主要是公司笔试题得一些总结