সমস্যা বিবরণ
একটি স্ট্রিং দেওয়া থাকলে, ক্রমাগত ডুপ্লিকেট ক্যারেক্টারগুলোকে একটিতে কমিয়ে কম্প্রেসড স্ট্রিং বের করুন।
উদাহরণ: "heeeeelllllllloooooo" → "helo"
সমাধানের পদ্ধতি
- খালি স্ট্রিং
ret। - স্ট্রিং ট্রাভার্স করুন:
- যদি
retখালি নয় এবংret.back() == s[i]হয়, তবে স্কিপ করুন। - অন্যথায়
ret += s[i]।
- যদি
retরিটার্ন করুন।
C++ কোড উদাহরণ
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
string solve(string s) {
string ret = "";
for (int i = 0; i < s.size(); i++) {
if (ret.size() && ret.back() == s[i]) {
continue;
}
ret += s[i];
}
return ret;
}
};
int main() {
Solution ob;
cout << ob.solve("heeeeelllllllloooooo");
return 0;
}
আউটপুট
helo
জটিলতা
- সময়: O(n)
- স্থান: O(n) — আউটপুট স্ট্রিং