bool isNum(char ch) { return ch >= '0' && ch <= '9'; } string decode(string str) { int index1 = 0; int index2 = 1; int index3 = 0; long long int len = 0; vector<vector<int>> vecIndecx; vector<int> vecCount; while(index2 < str.size()) { char ch = str[index2]; if (isNum(ch)) { int count = ch - '0'; index3 = index2 + 1; while(index3 < str.size() && isNum(str[index3])) { count *= 10; count += (str[index3] - '0'); index3++; } vecCount.push_back(count); vector<int> temp; temp.push_back(index1); temp.push_back(index2); vecIndecx.push_back(temp); len += count * (index2 - index1); index1 = index3; index2 = index1 + 1; } else { index2++; } } string ret; ret.resize(len+1); int retIndex = 0; vector<vector<int>>::iterator iter = vecIndecx.begin(); vector<int>::iterator countIter = vecCount.begin(); for(int i=0; i<vecIndecx.size(); i++) { for (int j = 0; j < *countIter; j++) { for(int index = (*iter)[0]; index < (*iter)[1]; index++) { ret[retIndex++] = str[index]; } } iter++; countIter++; } ret[retIndex] = '\0'; return ret; }
点赞 评论

相关推荐

点赞 评论 收藏
分享
在debug的柠檬精很迷人:好消息:现在HR挑三拣四 15年后 HR跪着求要简历 坏消息:被挑的是这代人,到时候求人的也是这代人。真好。
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务