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"