Share 424. longest repeating character replacement c++,

buitrung.anh

New member
#424, thay thế ký tự lặp lại #dài nhất, #C ++, lập trình #C ++, cấu trúc #data ## 424. Thay thế ký tự lặp lại dài nhất (C ++)

Đưa ra một chuỗi, hãy tìm chuỗi con dài nhất lặp lại.Ví dụ: trong chuỗi "ABCABCBB", chuỗi con lặp lại dài nhất là "ABC".

**Giải pháp:**

`` `C ++
#include <Istream>
#include <String>

sử dụng không gian tên STD;

int main () {
dây;
cin >> s;

// Tạo bản đồ để lưu trữ tần số của mỗi ký tự.
Unordered_map <char, int> freq;
for (char c: s) {
Freq [C] ++;
}

// Tìm ký tự có tần số cao nhất.
char max_char = '';
int max_freq = 0;
for (char c: freq) {
if (freq [c]> max_freq) {
MAX_CHAR = C;
max_freq = freq [c];
}
}

// Tìm chuỗi con dài nhất lặp lại.
int start = 0;
int end = 0;
int len = 0;
for (int i = 0; i <s.length (); i ++) {
if (s == max_char) {
kết thúc = i;
Len = End - Bắt đầu + 1;
} khác {
bắt đầu = i + 1;
}
}

// In các chuỗi con lặp lại dài nhất.
cout << s.substr (bắt đầu, len) << endl;

trả lại 0;
}
`` `

** Độ phức tạp về thời gian: ** O (n)

** Độ phức tạp không gian: ** O (1)
=======================================
#424, #Longest Repeating Character Replacement, #C++, #C++ Programming, #data Structures ## 424. Longest Repeating Character Replacement (C++)

Given a string, find the longest substring that repeats itself. For example, in the string "abcabcbb", the longest repeating substring is "abc".

**Solution:**

```c++
#include <iostream>
#include <string>

using namespace std;

int main() {
string s;
cin >> s;

// Create a map to store the frequency of each character.
unordered_map<char, int> freq;
for (char c : s) {
freq[c]++;
}

// Find the character with the highest frequency.
char max_char = ' ';
int max_freq = 0;
for (char c : freq) {
if (freq[c] > max_freq) {
max_char = c;
max_freq = freq[c];
}
}

// Find the longest substring that repeats itself.
int start = 0;
int end = 0;
int len = 0;
for (int i = 0; i < s.length(); i++) {
if (s == max_char) {
end = i;
len = end - start + 1;
} else {
start = i + 1;
}
}

// Print the longest repeating substring.
cout << s.substr(start, len) << endl;

return 0;
}
```

**Time Complexity:** O(N)

**Space Complexity:** O(1)
 
Join Telegram ToolsKiemTrieuDoGroup
Back
Top