华为机试【17、字符串变换最小字符串】

17、标题:字符串变换最小字符串
【字符串变换最小字符串】给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。变化规则:交换字符串中任意两个不同位
置字符。
输入描述: 一串小写字母组成的字符串s
输出描述: 按照要求进行变换得到最小字符串
备注: s是都是小写字符组成1<=s.length<=1000
示例1:
输入
abcdef
输出
abcdef

def minStr(s):
    """我理解这就是个选择排序法,找出最小的字符,替换到尽可能靠前的位置,只替换一次"""
    s = [x for x in s]
    for i in range(len(s) - 1):
        min_index = i
        for j in range(i + 1, len(s)):
            if s[j] < s[min_index]:
                min_index = j
        if min_index != i:
            s[min_index], s[i] = s[i], s[min_index]
            break
    return ''.join(s)


print(minStr("bcfdefa"))
全部评论
错了,直接排序即可
1 回复
分享
发布于 2022-06-23 16:42
求更新
点赞 回复
分享
发布于 2022-02-15 21:50
博乐游戏
校招火热招聘中
官网直投

相关推荐

点赞 4 评论
分享
牛客网
牛客企业服务