垃圾学渣求毕业 2022-01-09 07:33 采纳率: 50%
浏览 301
已结题

C++ 最多访问的人数

由于新的圣诞节规定,圣诞老人只能按照一定的顺序访问居住在每个城镇的儿童的家。
此外,他只能访问以他访问的上一个儿童的名字的字母结尾作为姓名开头的儿童。为了遵守这个规定,圣诞老人可能不得不遗漏一些儿童。
给定镇上儿童的名字和他需要遵循的顺序,你要找到他可以访问的最多数量的儿童。

输入包括
• 一行包含 n (1 ≤ n ≤ 10^4) – 儿童的数量
• n 行包含儿童的姓名(即长度≤15 的字符串)
按照圣诞老人需要遵循的顺序。如果一个名字出现多次,它指的是同名的不同儿童。

输出
输出单个数字,即圣诞老人可以访问的儿童的最大数量。

img

  • 写回答

14条回答 默认 最新

  • Hann Yang 优质创作者: 编程框架技术领域 2022-01-09 08:06
    关注
    n = int(input('输入儿童的数量:'))
    Names = []
    print('请输入%d个儿童的名字'%n)
    for i in range(n,0,-1):
        Names.append(input())
    
    #例子: Names = ['Marie', 'Elisabeth', 'Michael', 'Hans']
    names = [n[0].lower()+n[-1] for n in Names]
    
    res = []
    for i,n in enumerate(names):
        res.append([n])
        for j in range(i+1,len(names)):
            if names[j][0]==res[-1][-1][-1]:
                res[-1].append(names[j])
    
    print('圣诞老人可以访问的儿童的最大数量:',max(map(len,res)))
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月11日
  • 创建了问题 1月9日