Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
Ý tưởng
Chúng ta sẽ tách xâu ra thành ít phần nhất sao cho mỗi phần chỉ có đúng 1 loại chữ cái tạo thành
Ví dụ: abcaab -> tách thành {"a","b","c","aa","b"}
Sau đó, ta sẽ duyệt qua dãy tạo được và tìm xem có phần tử nào có độ dài lớn hơn hoặc bằng k hay không. Nếu có thì in YES, nếu không thì NO.
Code
#include <bits/stdc++.h>
using namespace std;
string s;
char curChar = '!';
int k,curLen;
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin >> s >> k;
s += '!';
for(char c: s){
if(c == curChar) curLen++;
else{
if(curLen >= k){
cout << "YES";
return 0;
}
curLen = 1;
curChar = c;
}
}
cout << "NO";
return 0;
}
Hãy giúp mọi người biết câu trả lời này thế nào?
Giải:
Chúng ta sẽ tách xâu ra thành ít phần nhất sao cho mỗi phần chỉ có đúng 1 loại chữ cái tạo thành
Ví dụ: abcaab -> tách thành {"a","b","c","aa","b"}
Sau đó, ta sẽ duyệt qua dãy tạo được và tìm xem có phần tử nào có độ dài lớn hơn hoặc bằng k hay không. Nếu có thì in YES, nếu không thì NO.
Code
#include <bits/stdc++.h>
using namespace std;
string s;
char curChar = '!';
int k,curLen;
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin >> s >> k;
s += '!';
for(char c: s){
if(c == curChar) curLen++;
else{
if(curLen >= k){
cout << "YES";
return 0;
}
curLen = 1;
curChar = c;
}
}
cout << "NO";
return 0;
}
$#Nguyenchuong$
Hãy giúp mọi người biết câu trả lời này thế nào?
Sự kiện