Uriel's Corner

Research Associate @ Harvard University / Research Interests: Computer Vision, Biomedical Image Analysis, Machine Learning
posts - 0, comments - 50, trackbacks - 0, articles - 594
给一个字符串,每次可以把头k位的其中一个字符调至字符尾端,操作次数不限,问可以得到的字典序最小的字符串是什么

若k=1,O(n^2),模拟每次挪一位去末尾然后求最小可能
若k>2,则理论上可以实现任意交换元素位置,那只要把string转为list直接sort输出

 1 #899
 2 #Runtime: 38 ms
 3 #Memory Usage: 13.4 MB
 4 
 5 class Solution(object):
 6     def orderlyQueue(self, s, k):
 7         """
 8         :type s: str
 9         :type k: int
10         :rtype: str
11         """
12         if k == 1:
13             t = s
14             for i in range(1, len(s)):
15                 if t > s[i : ] + s[0 : i]:
16                     t = s[i : ] + s[0 : i]
17         else:
18             t = ''.join(sorted(list(s)))
19         return t

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理