题解 | 查找兄弟单词

查找兄弟单词

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

import sys

# 读取输入字符串并按空格分割成列表
# 示例输入: "3 abc cba bac xyz 2" → ['3', 'abc', 'cba', 'bac', 'xyz', '2']
question_list = list(map(str, input().split(' ')))

# 获取第一个元素作为n,表示需要检查的单词数量
n = int(question_list[0])

# 获取倒数第二个元素作为x,这是我们要比较的目标单词
x = question_list[-2]

# 获取最后一个元素作为k,表示要输出的第k个符合条件的单词
k = int(question_list[-1])

# 计数器,记录符合条件的单词数量
count = 0

# 存储所有符合条件的单词
final_list = []

# 遍历需要检查的单词部分(从第1个元素到倒数第3个元素)
for i in range(1, len(question_list)-2):
    # 当前要检查的单词
    compare_list1 = question_list[i]
    # 当前单词的字母排序后的列表
    compare_list2 = sorted(question_list[i])
    # 目标单词x的字母排序后的列表
    compare_question_list2 = sorted(question_list[-2])
    
    # 检查当前单词和目标单词x的字母组成是否相同(是否是字母异位词)
    if ''.join(compare_list2) == ''.join(compare_question_list2):
        # 检查当前单词是否与目标单词x本身不同
        if ''.join(compare_list1) != question_list[-2]:
            # 符合条件的单词加入结果列表
            final_list.append(question_list[i])
            count += 1

# 输出结果判断
if count == 0 or count < k:  
    # 如果没有符合条件的单词或k超出范围,只输出数量
    print(count)
else:
    # 否则先输出数量
    print(count)
    # 对结果列表按字典序排序
    final_list.sort()
    # 输出第k个符合条件的单词(注意列表索引从0开始)
    print(final_list[k-1])

全部评论

相关推荐

努力的小明a:项目看着很眼熟,施磊老师吧,我也学的这个😋我当时是把rpc框架做成了一个分布式网盘,这是一个项目,然后muduo库做成集群即时通讯,又用QT做了个交互的客户端,这样又一个项目,然后一个轻量redis,一个CAD,总共四个项目,投了三个月就今天2月份一个小厂Qt offer,然后后面想开了,Qt啥的都能干,这个月get了个北京大厂的offer,做java后端,人生就是这么魔幻,现在就在去北京入职的路上
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务