漫画源文件是什么(看动画刷剑指 Offer| 左旋转字符串(超详细的代码注释和视频讲解))

wufei123 发布于 2023-12-15 阅读(356)

一、题目描述字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部请定义一个函数实现字符串左旋转操作的功能比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。

示例 1:输入: s = "abcdefg", k = 2输出: "cdefgab"示例 2:输入: s = "lrloseumgh", k = 6输出: "umghlrlose"限制:1 <= k < s.length <= 10000

二、保姆级参考代码classSolution{public String reverseLeftWords(String s, int n){// 1、获取字符串的长度int length = s.length();

// 2、把字符串转换为字符数组的形式char[] chars = s.toCharArray();// 3、把字符数组的所有字符反转// 即  a b c d e f g // 变成了 g f e d c b a

        reverse(chars, 0, length - 1);// 4、再反转前 length - n 个字符// 即  g f e d c b a// 变成了 c d e f g b a

        reverse(chars, 0, length - n - 1);// 5、再反转剩余的字符   // 即  c d e f g b a// 变成了 c d e f g a b        reverse(chars, length - n, length - 

1);// 6、最后返回字符串结果就可以returnnew String(chars);    }// 借助临时变量的方法,把字符数组进行反转privatevoidreverse(char[] chars, 

int start, int end){// 从头到尾变量所有的字符while (start < end) {// 定义一个临时变量用来保存字符数组的开始字符char temp = chars[start];

// 将首尾字符交换            chars[start] = chars[end];// 将首尾字符交换            chars[end] = temp;            start++;

            end--;        }    }}三、视频讲解关闭观看更多更多正在加载正在加载退出全屏视频加载失败,请刷新页面再试

刷新

视频详情 -------------end------------Hello,我是程序员吴师兄,哈工大转行程序员,GitHub 排名前 100我的故事:从工地打工,到狂揽10个大厂offer、副业赚100万:培训班出来的程序员是怎么做到的?。

吴师兄的算法训练营正在开展第二期,点击了解更多:不懂算法,去大厂,真香!点击下方卡片,后台回复:888,可以获得一些算法学习资料点击下方【阅读原文】直达程序员吴师兄的 B 站视频,求关注求一键三连[]~( ̄▽ ̄)~*。

亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。