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
** Độ 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)
Đư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
** Độ 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)