题目
我的思路
首先自然是暴力直接按照题目逻辑进行解题,遍历整个字符串,寻找符合规则的较大分组。
下面是我编写的代码。在最后还要再重复一步检测,不简洁。但自己想不出来了。
class Solution {
public:
vector<vector<int>> largeGroupPositions(string s) {
vector<vector<int>> res;
char pre_char = s[0];
int pre_num = 0;
int sim_num = 0;
int len = s.size();
if (len<3) {
// res.pushback(vector<int>);
return res;
}
for (int i = 0; i<len; i++) {
if (s[i]==pre_char) {
sim_num++;
}
else {
if (sim_num>=3) {
res.push_back(vector<int>());
res.back().push_back(pre_num);
res.back().push_back(i-1);
}
pre_char = s[i];
pre_num = i;
sim_num = 1;
}
}
if (sim_num>=3) {
res.push_back(vector<int>());
res.back().push_back(pre_num);
res.back().push_back(len-1);
}
return res;
}
};
题解的代码更加简洁。
自己的笔记
二维vector的使用:
vector<vector<int>> res;
res.push_back(vector<int>());
res.back().push_back(pre_num);
string的长度获得
string s;
int len = s.size();