vector没有find函数,分三种情况讨论
1.只要存在没有重复k次,这个按键必定没坏
2.重复k次,但满足1
3.重复k次,不满足1
#include<bits/stdc++.h>
using namespace std;
bool hash1[1000]={false},hash2[1000]={false},hash3[1000]={false};
vector<char> v1,v2;
int main(){
int k,num=0;
string s,s1;
cin>>k>>s;
for(int i=0;i<(int)s.length();i++){
num=1;
while(s[i]==s[i+1]){
num++;
i++;
}
if(num%k==0&&hash1[s[i]]==false)
{
hash2[int(s[i])]=true; //hash2为true表示此按键可能坏掉
}
else{
hash1[int(s[i])]=true; //hash1为true表示此按键没坏
}
}
for(int i=0;i<(int)s.length();i++){
if(hash2[int(s[i])]==false)
s1+=s[i];
else{
if(hash1[int(s[i])]==true)
s1+=s[i];
else{
if(hash3[int(s[i])]!=true)
{
v1.push_back(s[i]);
hash3[int(s[i])]=true;
}
num=1;
while(s[i]==s[i+1]){
num++;
i++;
}
int t=num/k;
while(t!=0){
s1+=s[i];
t--;
}
}
}
}
for(int i=0;i<v1.size();i++)
cout<<v1[i];
cout<<endl;
cout<<s1;
return 0;
}