首页 > 试题广场 >

最大子序列

[编程题]最大子序列
  • 热度指数:3789 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
对于字符串x和y, 如果擦除x中的某些字母(有可能全擦掉或者都不擦)能够得到y,我们就称y是x的子序列。例如."ncd"是"nowcoder"的子序列,而"xt"不是。
现在对于给定的一个字符串s,请计算出字典序最大的s的子序列。

输入描述:
输入包括一行,一个字符串s,字符串s长度length(1 ≤ length ≤ 50).
s中每个字符都是小写字母


输出描述:
输出一个字符串,即字典序最大的s的子序列。
示例1

输入

test

输出

tt
python3比python2稍微有些不同
def solution(s):
    result = []
    n = 0
    while s != []:
        result.append(max(s))
        n = s.index(max(s))
        s = s[n+1:]
    return "".join(result)
print(solution(list(input())))

编辑于 2021-04-01 10:56:09 回复(0)
string = list(input())
result = []
while True:
    max_letter = string[0]
    max_letter_index = 0
    for i in range(len(string)):
        if ord(string[i]) > ord(max_letter):
            max_letter = string[i]
            max_letter_index = i
    result.append(max_letter)
    if max_letter_index == len(string) - 1:
        break
    else:
        string = string[max_letter_index+1:]
print(''.join(result))

发表于 2019-09-06 22:36:27 回复(0)