解题思路:我也没有思路,写的题多了,也便有了套路
按照代码注释的交换字符就能得到下一个字典序字符串
注意事项:
参考代码:
temp = input().strip() string = list(temp) length = len(string) i = length - 2 # 至少两个元素才能交换,排序 while i >= 0 and string[i] >= string[i + 1]: # 从后往前找到第一个小于后面元素的a[i] i -= 1 if i >= 0: # 若整个数组为降序,则在a[i]之后不存在比a[i]大的元素,不用执行while j = length - 1 while j >= i and string[j] <= string[i]: # 从后往前找到第一个大于a[i]的元素 j -= 1 string[i], string[j] = string[j], string[i] left, right = i + 1, length - 1 while left < right: # 因为原来顺序是降序,将i后的升序排序只需要逆转即可 string[left], string[right] = string[right], string[left] left += 1 right -= 1 print(string)
0.0分
1 人评分
矩阵转置 (C语言代码)浏览:1525 |
C语言程序设计教程(第三版)课后习题7.4 (Java代码)浏览:841 |
C语言考试练习题_排列 (C语言代码)浏览:1317 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:429 |
【明明的随机数】 (C++代码)浏览:781 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:575 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:695 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:520 |
WU-蓝桥杯算法提高VIP-企业奖金发放 (C++代码)浏览:1169 |
【偶数求和】 (C语言代码)浏览:557 |