streak in a character array

3 vues (au cours des 30 derniers jours)
Elena
Elena le 28 Mar 2022
Commenté : Elena le 28 Mar 2022
how might i find the max streak number for a character array?
ex: something like 'aaaaBBc'
would return 4 because thats the longest streak
I have this and it only works for streaks with capital letters for some reason
cArr = 'aaaaBBc'
if ischar(cArr) == 1 && isempty(cArr) == 0
for i = 2:length(cArr)
if cArr(i) == cArr(i-1)
streak = streak + 1;
else
if streak > maxStreak
maxStreak = streak;
end
streak = 1;
end
end
res = maxStreak;

Réponse acceptée

Simon Chan
Simon Chan le 28 Mar 2022
Sorry that I overlooked the question in my previous answer, here is the updated one:
cArr = 'aaaaBBc';
pos = find(diff([0,diff(cArr)==0,0])==1);
neg = find(diff([0,diff(cArr)==0,0])==-1);
if isempty(neg-pos)
maxStreak = 1
else
maxStreak = max(neg-pos)+1
end
maxStreak = 4
  1 commentaire
Elena
Elena le 28 Mar 2022
thank you!

Connectez-vous pour commenter.

Plus de réponses (1)

Mahmoud Ashraf
Mahmoud Ashraf le 28 Mar 2022
Modifié(e) : Walter Roberson le 28 Mar 2022
cArr = 'aaaaBBc';
streak=0;
maxStreak=0;
if ischar(cArr) == 1 && isempty(cArr) == 0
for i = 2:length(cArr)
if cArr(i) == cArr(i-1)
streak = streak + 1;
else
if streak > maxStreak
maxStreak = streak;
end
streak = 1;
end
end
res = maxStreak;
end

Catégories

En savoir plus sur Image Data Workflows dans Help Center et File Exchange

Produits


Version

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by