老貓正在上班,忽然微信有人閃我,心中一緊,難道剛上線的服務有出問題了。
結果是一個妹子問問題,題目如下:
小A有個特殊愛好:
喜歡這種字符串:'ABACA',只要不相同的字母不相鄰就愛的不要不要的;
不喜歡這字符串:'CAABA',只要有相同字母相鄰就受不了;
題目描述:
給定一個字符串(大寫字母組成),判斷是不是小A喜歡的。
她給的答案如下:
def islike(values):
for i in range(len(values)-1):
if values[i] == values[i+1]:
print('dislike')
else:
print('like')
islike('BAAD')
輸出結果:
like
dislike
like
看完題目與答案,我很高興,跟我學了不到2周,居然達到這種水平,我很是意外;
等我仔細清題目,很是鬱悶,跟我學不到兩週,居然還是這種水平,我很是意外;
於是我給她仔細分析思路:
1:判斷的截止條件是什麼;
2:使用什麼知識點;
3:能否使用筆在紙上簡單走一下邏輯。
問題1:判斷條件
只要values[i] == values[i+1],那麼就直接返回dislike
問題2:知識點
一個for遍歷字符串,然後加break語句就能解決這個問題
直接上代碼:
def islike(values):
ret = 'like'
for i in range(len(values)-1):
if values[i] == values[i+1]:
ret = 'dislike'
print(ret)
return ret
islike('BAAD')
islike('BACDAC')
結果:
dislike
like
到這裏,已經幫她解決好問題了。
忽然微信又有人閃我,心中激動不已;結果是一個小弟,來問同樣的問題,我假裝沒看見,直接打開了消息免打擾。