FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
Java/strings/Rotation.java at master · loisoft/Java · GitHub
loisoft
/
Java
Public
forked from
TheAlgorithms/Java
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
Java
/
strings
/
Rotation.java
Copy path
More file actions
More file actions
Latest commit
History
History
History
58 lines (53 loc) · 1.64 KB
Breadcrumbs
Java
/
strings
/
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
--;
}
}
}
Back
|
FazBrowse Home
|
New Git URL