n个国家问题,输出字母顺序最小的国家

img


求解答,最好能具体给我讲解这一类相似问题的一些解决妙招。或者是一些技巧一下。感激不尽

三条代码就搞定了啊,python默认会自动按照ascii码来比较字符串的大小

# n代表需要输入几个国家
n = int(input())
# countries将输入的n个国家名以字符串形式保存在列表里
countries = [input() for i in range(n)]
# 将列表countries升序排序,然后打印出排在第一位的字符串,也就是最小的
print(sorted(countries)[0])

参考代码如下:

# 定义字符串比较函数
def compare(name1, name2):
    len1 = len(name1)
    len2 = len(name2)
    if len1 == 0 and len2 == 0:
        return 0
    elif len1 == 0 and len2 > 0:
        return 0
    elif len1 > 0 and len2 == 0:
        return 1
    c1 = name1[0:1].lower()
    c2 = name2[0:1].lower()
    if ord(c1) > ord(c2):
        return 1
    elif ord(c1) == ord(c2):
        if len1 > 1 and len2 > 1:
            return compare(name1[1:], name2[1:])
        elif len1 == 1:
            return 0
        elif len2 == 1:
            return 1
    return 0

c = []
n = (int)(input('please inuput lines:'))
for i in range(0, n):
    ch = input()
    c.append(ch)
for i in range(0, n-1):
    for j in range(i+1, n):
        if compare(c[i], c[j]) > 0:
            temp = c[i]
            c[i] = c[j]
            c[j] = temp
print(c[0])