+6 投票
分类:问答挑战 | 用户: 8 5 3 (1.4k 分)

一个风平浪静的星期四,Oshwiciqwq 正在网上冲浪,突然收到了很多条消息!

但他不喜欢 KFC,所以他不想阅读那些包含“疯狂星期四”文学的诈骗消息。请你帮他筛选出来哪些信息包含了“疯狂星期四”文学。

具体来讲,每条消息是由字母和数字组成的一个字符串。子串是字符串中任意个连续的字符组成的 子序列。如果这个字符串在忽略字母大小写的情况下,同时存在五个子串,它们分别为 "kfc"、 "crazy"、"thursday"、"vivo"、"50" 五个关键词,那么就认为这个消息包含了“疯狂星期四”文学。另外,这些子串可以重叠。比如,"kfcrazy" 可以看做同时存在 "kfc" 和 "crazy" 两个子串。

输入格式

第一行一个正整数 T(1 ≤ T ≤ 100),表示消息的条数。

接下来 T 行,每行一个由字母和数字组成的字符串 si(1 ≤ |si| ≤ 1000),表示第 i 条消息。

输出格式

输出 T 行,每行包含一个字符串。

对于第 i 行,如果第 i 条消息包含了“疯狂星期四”文学,那么输出 "Yes"。否则,输出 "No"。

样例

提示

样例中,第一条消息的 "vivo" 的 "o" 是数字 "0",故不符合要求。

第二条消息完整包含了 "KFC","crazy","THURSday","VivO","50" 五个关键词,所以是符合要

求的。

  第三条消息把几个关键词的位置打乱了,但也符合“存在五个子串”的要求

1个回答

+4 投票
用户: 9 8 7 (4.6k 分)
采纳于 用户:
 
已采纳

def fun(m):

    a,b,c,d,e=0,0,0,0,0

    mes=list(m.lower())

    for i in range(len(mes)):

        if mes[i]=="k":

            mes_=mes[i:i+3]

            if mes_==list("kfc"):

                a=1

        if mes[i]=="c":

            mes_=mes[i:i+5]

            if mes_==list("crazy"):

                b=1

        if mes[i]=="t":

            mes_=mes[i:i+8]

            if mes_==list("thursday"):

                c=1

        if mes[i]=="v":

            mes_=mes[i:i+4]

            if mes_==list("vivo"):

                d=1

        if mes[i]=="5":

            mes_=mes[i:i+2]

            if mes_==list("50"):

                e=1

    if (a==1)and(b==1)and(c==1)and(d==1)and(e==1):

        print("yes")

    else:

        print("no")

n=int(input("please put a number about the amount of your messages(must be int):"))

i=n

m=[]

while i:

    mess=input("please put your message:")

    m.append(mess)

    i-=1

for n in m:

    fun(n)

用户: 10 9 5 (6.4k 分)
麻烦贴一下运行结果
欢迎来到 在线问答系统 ,有什么不懂的可以尽管在这里提问,你将会收到社区其他成员的回答。
...