#力扣 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;
}
}

