主要就是考双指针,不难
输出比较需要技巧;
首先把没有坏掉的按键直接存起来,通过第一轮筛选输出坏掉的键,并把坏掉的键另外标注
第二次查找 如果是没有坏掉的按键就直接加入到结果当中,如果是坏掉的按键那就把i跳k个进行输出
贴一下ac代码
#include<iostream>
#include<unordered_map>
using namespace std;
unordered_map<char,int> vol;
int main()
{
int k;
string s,res;
cin>>k>>s;
for(int i=0,j=i+1;i<s.length()&&j<s.length();)
{
while(s[j]==s[i]) ++j;
if((j-i)%k) vol[s[i]]=1;
i=j;
}
for(int i=0;i<s.length();++i)
{
if(!vol[s[i]])
cout<<s[i],vol[s[i]]=2;
if(vol[s[i]]==1) res+=s[i];
else{
res+=s[i];
i+=k-1;
}
}
cout<<endl;
cout<<res;
}