題意
給一個只有包含 A, T, C, G 的字串,找到只有包含一種字元的最長子字串
解題想法
紀錄目前只有一種字元的字串長度,如果跟前面的不一樣就重新開始計算
下面的code我的 i 是故意多跑到 = s.size(),這樣的話如果最後兩個字母是一樣的,最新的答案也會被算進去!
如果單純判斷 s[i] == s[i-1] 的話,最後兩個字母一樣的話我們不會再次更新答案。
#include <bits/stdc++.h>
using namespace std;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
string s;
cin >> s;
int now = 1, ans = 0;
for(int i = 1;i <= s.size();i++){
if(i < s.size() && s[i] == s[i-1]) now ++;
else {
ans = max(ans, now);
now = 1;
}
}
cout << ans << '\n';
}
發表迴響