443. String Compression | LeetCode Medium | LeetCode Daily Challenge | LeetCode POTD

preview_player
Показать описание

0:00​ - Question Understanding
2:00 - Coding Solution 1
4:25 - Coding Solution 2

#coding #dsa #leetcode #daily #programming #cpp #tutorial
Рекомендации по теме
Комментарии
Автор

class Solution {
public:
int compress(vector<char>& chars) {
int j = 0;

for (int i = 0; i < chars.size();) {
const char letter = chars[i];
int count = 0;

while (i < chars.size() && chars[i] == letter) {
++count;
++i;
}

chars[j++] = letter;

if (count > 1) {
for (const char c : to_string(count)) {
chars[j++] = c;
}
}
}

return j;
}
};

deepcodes
Автор

class Solution {
public:
int compress(vector<char>& chars) {
string s;
char prev = chars[0];
int prevFreq = 1;

for (int i = 1; i < chars.size(); i++) {
if (chars[i] == prev) {
prevFreq++;
}
else {
s += prev;
if (prevFreq > 1)
s += to_string(prevFreq);
prev = chars[i];
prevFreq = 1;
}
}
s += prev;
if (prevFreq > 1)
s += to_string(prevFreq);

chars.clear();
for (char it : s)
chars.push_back(it);
return s.size();
}
};

deepcodes