GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Java/strings/Rotation.java at master · rcfgnu/Java

Expand file tree

/

Rotation.java

Copy path
More file actions
More file actions

Latest commit

 

History

History
History
58 lines (53 loc) · 1.64 KB
/

Rotation.java

Copy path

File metadata and controls

58 lines (53 loc) · 1.64 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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.