解题思路:我也没有思路,写的题多了,也便有了套路
按照代码注释的交换字符就能得到下一个字典序字符串
注意事项:
参考代码:
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语言训练-字符串正反连接 (C语言代码)浏览:692 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:1721 |
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)浏览:474 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:728 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码) 用函数传参的方法浏览:4078 |
数列 (C++代码)浏览:664 |
【回文数(二)】 (C语言代码)浏览:730 |
兰顿蚂蚁 (C++代码)浏览:1091 |
最长单词 (C语言代码)浏览:1376 |
WU-小九九 (C++代码)浏览:1684 |