package point;/*** 题目:左旋转字符串* "abcXYZdef",3 ->"XYZdefabc"* 解题思路:* 先反转前面几个,再翻转后面几个,最后全部重写翻转* @Author Gavin* @date 2022年08月06日 17:29*/public class spinStr {/*** 思路:* 1.先翻转前半部分* 2.再翻转后半部分* 3.再对字符串整个进行翻转* <p>* 考点:不使用库对字符串进行灵活的翻转*/public String LeftRotateString(String str, int n) {if (str == null || str.length() == 0 || n <= 0) {return str;}if (n >= str.length()) {//这儿也是比较关键的n = n % str.length();}char[] ch = str.toCharArray();reverseString(ch, 0, n - 1);reverseString(ch, n, str.length() - 1);reverseString(ch, 0, str.length() - 1);return new String(ch);}/*** 对字符数组 ch 的 start 到 end 范围内的字符进行翻转*/public void reverseString(char[] ch, int start, int end) {while (start < end) {char temp = ch[start];ch[start] = ch[end];ch[end] = temp;start++;end--;}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。