網(wǎng)易筆試
具體題目為:
將連續(xù)超過四位的字母進(jìn)行簡(jiǎn)寫,其他的則直接保留:
比如
abcdfqwer ->a-fqwer
abc -> abc
abcd -> a-d
def encoderStr(s):
n = len(s)
low,high = 0,1
newStr = ''
s+='*' #此處為了將所有字符都進(jìn)行遍歷
while(high<n):
for i in range(low+1,n+1):
if(ord(s[i])-ord(s[i-1]) == 1):
high = i
else:
high += 1 #保證無(wú)論如何都要向前走一步郁岩,避免出現(xiàn)while無(wú)限循環(huán)
break
if(high-low >=3):
newStr += s[low]+'-'+s[high-1]
else:
newStr += s[low:high]
low = high
return newStr
input: encoderStr('abcdefgabcdasdfcdefopqrst')
output: 'a-ga-dasdfc-fo-t'