华为机试【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"))