LeetCode 2414. Length of the Longest Alphabetical Continuous Substring
周賽311。這次的Q2也是簡單,有提交答案的人幾乎全部都通過了。
題目
連續字母字串是由字母表中的連續字母組成的字串。換句話說,它是字串”abcdefghijklmnopqrstuvwxyz”的任何子字串。
例如”abc”是連續字母字串,而”acb”和”za”則不是。
輸入僅由小寫字母組成的字串s,求最長連續字母字串長度。
解法
只要每個字元c都接在ascii碼前一位的字元後面,那他就是連續的。
遍歷s中每一個字元c,和前一個字元prev比較ascii值,如果正好是下一位則使字串長度遞增1,否則重置連續字串。
時間複雜度為O(N),空間複雜度為O(1)。
class Solution:
def longestContinuousSubstring(self, s: str) -> int:
prev=inf
cnt=0
ans=1
for c in s:
curr=ord(c)-97
if curr==prev+1:
cnt+=1
ans=max(ans,cnt)
else:
cnt=1
prev=curr
return ans