2019獨角獸企業重金招聘Python工程師標準>>>
小易喜歡的單詞具有以下特性:
1.單詞每個字母都是大寫字母
2.單詞沒有連續相等的字母
3.單詞沒有形如“xyxy”(這里的x,y指的都是字母,并且可以相同)這樣的子序列,子序列可能不連續。
例如:
小易不喜歡”ABBA”,因為這里有兩個連續的’B’
小易不喜歡”THETXH”,因為這里包含子序列”THTH”
小易不喜歡”ABACADA”,因為這里包含子序列”AAAA”
小易喜歡”A”,”ABA”和”ABCBA”這些單詞 給你一個單詞,你要回答小易是否會喜歡這個單詞。
輸入描述:
輸入為一個字符串,都由大寫字母組成,長度小于100
輸出描述:
如果小易喜歡輸出”Likes”,不喜歡輸出”Dislikes”
輸入例子:
AAA
輸出例子:
Dislikes
解答代碼:
# -*- coding:utf-8 -*-
# 2016/8/19
# mail:ybs.kakashi@gmail.com
from collections import defaultdictinput_words = raw_input("please input your words:\n")
checkers = list()def check_1(words):if words.islower() is True:return Falseif words.upper() == words:return Truereturn Falsedef check_2(words):index_dic = defaultdict(list)for i, j in enumerate(words):index_dic[j].append(i)for e in index_dic.keys():if len(index_dic[e]) != 2:del index_dic[e]temp = [0 for x in range(len(words))]for i, j in enumerate(words):if j in index_dic.keys():temp[i] = jtemp = [x for x in temp if x != 0]return not check_3(temp)def check_3(words):temp = list()for each in words:if len(temp) == 0:temp.append(each)continueif temp.pop() == each:return Falseelse:temp.append(each)return Truecheckers.extend((check_1, check_3, check_2))for each in checkers:if not each(input_words):print "Dislike", " by " + str(each)exit(0)
print "like"
?