/
NikolayIvkin
/
TheAlgorithms
Обзор
Документация
Войти
/
NikolayIvkin
/
TheAlgorithms
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/main/java/com/thealgorithms/strings/Rotation.java
62 строки
2 KB
Piotr Idzik
style: enable `HideUtilityClassConstructor` in checkstyle (#5147)
08 май 2024, 09:58
Не верифицирован
08 май 2024, 09:58
d3bb691
Код
Авторство
О чём код?
package com.thealgorithms.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 final class Rotation { private 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--; } } }