#力扣 LeetCode1446. 連續字元 @FDDLC
阿新 • • 發佈:2021-02-19
技術標籤:演算法&資料結構
題目描述:
https://leetcode-cn.com/problems/consecutive-characters/
Java程式碼:
class Solution { public int maxPower(String s) { //1 <= s.length <= 500 int[] cnt=new int[s.length()]; int ans=cnt[0]=1; for(int i=1,slen=s.length();i<slen;i++){ if(s.charAt(i)==s.charAt(i-1))cnt[i]=1+cnt[i-1]; else cnt[i]=1; if(ans<cnt[i])ans=cnt[i]; } return ans; } }
Java程式碼二:
class Solution { public int maxPower(String s) { //1 <= s.length <= 500 int[] cnt=new int[s.length()]; int ans=cnt[0]=1; for(int i=1,slen=s.length();i<slen;i++){ if(s.charAt(i)==s.charAt(i-1)){ cnt[i]=1+cnt[i-1]; if(ans<cnt[i])ans=cnt[i]; } else{ if(i+ans>=slen)break; //可無;在某些情況下可以提前退出 cnt[i]=1; } } return ans; } }
優化:
class Solution { public int maxPower(String s) { //1 <= s.length <= 500 int ans=1,cnt=1; for(int i=1,slen=s.length();i<slen;i++){ if(s.charAt(i)==s.charAt(i-1)){ if(ans<++cnt)ans=cnt; } else{ if(i+ans>=slen)break; //可無;在某些情況下可以提前退出 cnt=1; } } return ans; } }
class Solution {
public int maxPower(String s) { //1 <= s.length <= 500
int ans=1,cnt=1;
for(int i=1,slen=s.length();i<slen;i++){
if(s.charAt(i)==s.charAt(i-1)){
if(ans<++cnt)ans=cnt;
}
else{
cnt=1;
}
}
return ans;
}
}