解题思路:我也没有思路,写的题多了,也便有了套路
按照代码注释的交换字符就能得到下一个字典序字符串
注意事项:
参考代码:
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语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:715 |
震宇大神的杀毒软件 (C++代码)浏览:1173 |
字符串输入输出函数 (Java代码)浏览:1498 |
C语言程序设计教程(第三版)课后习题9.1 (Java代码)浏览:481 |
矩阵乘法 (C++代码)浏览:1662 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:287 |
C语言训练-排序问题<1> (C语言代码)浏览:636 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:1072 |
C语言训练-大、小写问题 (C语言代码)浏览:649 |
WU-printf基础练习2 (C++代码)浏览:2061 |