GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — Java/strings/Rotation.java at master · rcfgnu/Java Expand file tree/ Copy pathRotation.javaMore file actions 58 lines (53 loc) · 1.64 KB / Copy pathRotation.javaFile metadata and controls58 lines (53 loc) · 1.64 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 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--; } } } |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |