剑指 Offer 58 - II. 左旋转字符串 1.题目 2.我的解决方案 最早想出来的办法 class Solution: def reverseLeftWords(self, s: str, n: int) -> str: for i in range(n): ch = s[0] s = s[1:] s += ch return s
仅供自己学习 思路: 可以直接把0~n-1的位置的元素加入到s后面,然后再把0~n-1的元素删除即可。分别调用append,erase函数 代码: 1 class Solution { 2 public: 3 string reverseLeftWords(string s, int n) { 4 5 s.append(s,0,n); 6 s.erase(0,n)
左旋转字符串 自己的解法 public String reverseLeftWords(String s, int n) { return s.substring(n,s.length()) + s.substring(0,n); // 更简洁一点可以写为:return s.substring(n)+s.substring(0,n); } 暂未发现有其他特别好的解法。
class Solution { public String reverseLeftWords(String s, int n) { // 解法1,0 ms // return s.substring(n,s.length())+s.substring(0,n); // 解法2,时间效率最差,取余的技巧 7ms // StringBuilder ss=new StringBuilder();