解题思路:我也没有思路,写的题多了,也便有了套路
按照代码注释的交换字符就能得到下一个字典序字符串
注意事项:
参考代码:
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 人评分
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:754 |
求圆的面积 (C++代码)这里推荐使用宏定义浏览:1899 |
众数问题 (C语言代码)浏览:3509 |
Tom数 (C++代码)浏览:825 |
简单编码 (C++代码)浏览:675 |
简单的a+b (C语言代码)浏览:703 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:533 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:643 |
妹子杀手的故事 (C语言代码)浏览:1216 |
C语言训练-大、小写问题 (C语言代码)浏览:611 |