题解 | #查找兄弟单词#

查找兄弟单词

http://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68

描述
定义一个单词的“兄弟单词”为:交换该单词字母顺序(注:可以交换任意次),而不添加、删除、修改原有的字母就能生成的单词。
兄弟单词要求和原来的单词不同。例如:ab和ba是兄弟单词。ab和ab则不是兄弟单词。
现在给定你n个单词,另外再给你一个单词str,让你寻找str的兄弟单词里,按字典序排列后的第k个单词是什么?
注意:字典中可能有重复单词。本题含有多组输入数据。
输入描述:
先输入单词的个数n,再输入n个单词。 再输入一个单词,为待查找的单词x 最后输入数字k
输出描述:
输出查找到x的兄弟单词的个数m 然后输出查找到的按照字典顺序排序后的第k个兄弟单词,没有符合第k个的话则不用输出。

if __name__ == "__main__":
    
    rcvStr = input()
    rcvList = rcvStr.split(" ")
    
    strList = []
    for i in range(1, int(rcvList[0]) + 1):
        strList.append(rcvList[i])
    cmpStr = rcvList[int(rcvList[0]) + 1]
    index = int(rcvList[len(rcvList) - 1])
    
    retList = []
    
    for i in strList:
        if len(cmpStr) != len(i) or i == cmpStr:
            continue
        b = True
        for j in cmpStr:
            if j not in i:
                b = False
                break
            if cmpStr.count(j) != i.count(j):
                b = False
                break
                
        if b == True:
            retList.append(i)
    
    retList.sort()
    print(len(retList))
    if(index <= len(retList)):
        print(retList[index - 1])
    
    
1.首先把所有字典字符串放入数组中,注意不能去重
2.对比字符串和数组中字符串, 长度要相等 不能重复  每一个字符统计个数 需要和字典中一致
3.打印

全部评论

相关推荐

牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
沉淀一会:**圣经 1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务