机试真题 字符串重复个数计算

统计每个字符子串得重复字符个数,直接利用数学问题输出坐标就可以;

 

#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;
		}
	}
}

  

posted @ 2020-04-10 18:30  暮云林凌  阅读(258)  评论(0)    收藏  举报