天天看點

python面試題-輸入一個由n個大小寫字母組成的字元,按Ascii碼值從小到大排序,查找字元串中第k個最小Ascii碼值的字母

題目:

輸入一個由n個大小寫字母組成的字元,按Ascii碼值從小到大排序,查找字元串中第k個最小Ascii碼值的字母(k>=1)

輸入要求:

第一行輸入大小寫組成的字元串

第二行輸入k, k必須大于0,k可以大于字元串長度

輸出要求:

輸出該字母所在字元串的位置索引,字元串第一個位置索引是為0,

k如果大于字元串長度,則輸出最大值的怎麼所在字元串的位置索引,

如果第k個最小Ascii碼值的字母有重複,則輸出該字母的最小位置索引。

示例:

輸入:

AbCdeFG
3      

輸出:

5      

參考代碼

while 1:
    input_str = []
    for line in iter(input, "end"):  # 每行接收的東西
        input_str.append(line)
        if len(input_str) >= 2:
            break
    input_s, input_k = input_str
    try:
        k = int(input_k)
    except Exception as msg:
        print('k必須是數字')
        continue
    sort_s = sorted(input_s)
    if k <= 0:
        print('k必須大于0')
    else:
        if k > len(input_s):
            k = len(input_s)
        num_value = sort_s[k - 1]
        index = input_s.find(num_value)
        print(index)
        break