Supprimer 'k' code> des mêmes caractères consécutifs d'une chaîne jusqu'à ce que la chaîne n'a pas de caractères consécutifs. example :- abbac k->2
in first iteration b's will be removed -> aac
in second iteration a's will be removed -> c
so output is -> c
4 Réponses :
Une approche basée sur une regex serait d'itérer et de remplacer le modèle (.) \ 1 + code> avec une chaîne vide, jusqu'à ce que la longueur de la chaîne d'entrée s'arrête à devenir plus petite, ce qui n'impliquerait plus qu'aucun Les doublons peuvent être supprimés. Voici un script de travail en Java: String input = "abbac";
int k = 3;
for (int i=0; i < k; ++i) {
input = input.replaceAll("(.)\\1+", "");
}
Voir si k = 3 la chaîne sera telle qu'elle est -> Abbac
@ashutoshyelgulwar désolé, j'ai raté l'exigence sur k code> qui contrôle le nombre de remplaçants, q.v. ma réponse mise à jour.
string removeDuplicates(string str, int k) {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
stack<pair<char,int> >s;
for(int i=0;i<str.size();i++)
{
if(s.empty())s.push({str[i],1});
else{
if(s.top().first==str[i]){
++s.top().second;
if(s.top().second==k){s.pop();}
}
else {s.push({str[i],1});}
}
}
string res="";
while(!s.empty())
{
int x=s.top().second;
while(x--)
res=s.top().first+res;
s.pop();
}
return res;
}};
Veuillez éditer votre réponse pour inclure une explication de la manière dont cela répond à la question afin que les gens puissent en apprendre.
string Reduced_String(long long k, string a){
stack<pair<char,int>> s;
int count=0;
int i,x,n=a.size();
for(i=0;i<n;i++)
{
if(s.size())
{
pair<char,int> p=s.top();
if(a[i]==p.first)
{
count=p.second+1;
}
else
{
count=1;
}
s.push({a[i],count});
}
else
{
count=1;
s.push({a[i],count});
}
pair<char,int> p=s.top();
if(p.second>=k)
{
x=k;
while(x--)
{
s.pop();
}
}
}
string ans="";
while(s.size())
{
pair<char,int> p=s.top();
ans.push_back(p.first);
s.pop();
}
reverse(ans.begin(), ans.end());
return and;
}
Bien que cette extrait de code puisse résoudre le problème, cela n'explique pas pourquoi ou comment il répond à la question. S'il vous plaît Inclure une explication de votre code , car cela aide vraiment à améliorer la qualité de votre message. N'oubliez pas que vous répondez à la question des lecteurs à l'avenir, et ces personnes pourraient ne pas connaître les raisons de votre suggestion de code. Vous pouvez utiliser le bouton Modifier le bouton pour améliorer cette réponse pour obtenir plus de votes et de réputation!
int main(){
string s="âqddxxxdaaaâ";
string result=remove_K_Consecutive_Identical_Characters(s,3);
cout<<result<<endl;
return 0;
}
Quelle langue / outil utilisez-vous ici? Qu'est-ce que tu as essayé jusque-là?
Bienvenue sur Stackoverflow. Ce n'est pas un service de codage libre. Veuillez prendre le Tour , et surtout lire Comment demander . Alors Modifier Votre question et ajoutez le code que vous avez essayé jusqu'à présent. Que se passe-t-il quand tu l'exécutions? Qu'avez-vous pensé arriver à la place? Des erreurs? Bonne chance!