统计每个字符子串得重复字符个数,直接利用数学问题输出坐标就可以;
#include<iostream> #include<string> #include<vector> using namespace std; string s; int n; struct point { int index = -1; int length = 0; }; vector<point>vec; int main() { cin >> n; getchar(); getline(cin, s); int index = 0; while (index < s.size()) { int cnt = 1; point p; p.index = index++; for (; index < s.size(); index++) { if (s[p.index] == s[index]) { cnt++; } else { break; } } p.length = cnt; if (p.length >= n) vec.push_back(p); } for (int i = 0; i < vec.size(); i++) { for (int j = vec[i].index; j <= vec[i].length - n + vec[i].index; j++) { cout << j << endl; } } }
原文:https://www.cnblogs.com/songlinxuan/p/12675174.html