package strings;/*** Given a string, moving several characters* in front of the string to the end of the string.* For example, move the two characters'a' and 'b' in* front of the string "abcdef" to the end of the string,* so that the original string becomes the string "cdefab"*/public class Rotation {public static void main(String[] args) {assert rotation("abcdef", 2).equals("cdefab");char[] values = "abcdef".toCharArray();rotation(values, 2);assert new String(values).equals("cdefab");}/*** Move {@code n} characters in front of given string to the end of string* time complexity: O(n)* space complexity: O(n)** @param s given string* @param n the total characters to be moved* @return string after rotation*/public static String rotation(String s, int n) {return s.substring(n) + s.substring(0, n);}/*** Move {@code n} characters in front of given character array to the end of array* time complexity: O(n)* space complexity: O(1)** @param values given character array* @param n the total characters to be moved*/public static void rotation(char[] values, int n) {reverse(values, 0, n - 1);reverse(values, n, values.length - 1);reverse(values, 0, values.length - 1);}/*** Reverse character array** @param values character array* @param from begin index of given array* @param to end index of given array*/public static void reverse(char[] values, int from, int to) {while (from < to) {char temp = values[from];values[from] = values[to];values[to] = temp;from++;to--;}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。