Page Menu
Home
desp's stash
Search
Configure Global Search
Log In
Files
F646235
Solution.java
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
1 KB
Subscribers
None
Solution.java
View Options
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
public
class
Solution
{
public
static
int
solution
(
String
n
,
int
b
)
{
List
<
String
>
cycle
=
new
ArrayList
<>();
List
<
String
>
prevCycle
=
null
;
int
k
=
n
.
length
();
boolean
repeat
=
false
;
while
(!
repeat
)
{
//obtain sorted x and y
char
[]
chars
=
n
.
toCharArray
();
Arrays
.
sort
(
chars
);
String
y
=
new
String
(
chars
);
//y is ascending, not x
StringBuilder
sb
=
new
StringBuilder
(
y
);
String
x
=
sb
.
reverse
().
toString
();
//calculate z with base
int
z
=
Integer
.
parseInt
(
x
,
b
)
-
Integer
.
parseInt
(
y
,
b
);
//obtain n with base
n
=
Integer
.
toString
(
z
,
b
);
//prepend zeroes
int
prependCount
=
k
-
n
.
length
();
if
(
prependCount
>
0
)
{
char
[]
prepend
=
new
char
[
prependCount
];
Arrays
.
fill
(
prepend
,
'0'
);
n
=
new
String
(
prepend
)
+
n
;
}
//check if we are in a cycle
int
search
=
cycle
.
indexOf
(
n
);
if
(
search
!=
-
1
&&
search
!=
cycle
.
lastIndexOf
(
n
))
//if the value is found more than once in the list
cycle
=
cycle
.
subList
(
search
+
1
,
cycle
.
size
());
//remove irrelevant values before it since we are only interested in the cycle
cycle
.
add
(
n
);
if
(
prevCycle
!=
null
)
//if it aint null it would always have a value
prevCycle
.
add
(
prevCycle
.
remove
(
0
));
//rotate cycle for checking
if
(
cycle
.
equals
(
prevCycle
))
//if what we did is equivalent to rotating the list, we found it
repeat
=
true
;
prevCycle
=
new
ArrayList
<>(
cycle
);
//reset prevCycle
}
return
cycle
.
size
()
/
2
;
}
}
File Metadata
Details
Attached
Mime Type
text/x-java
Expires
Mon, May 11, 1:15 PM (1 d, 15 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
bf/2e/ca56469a98a8e195911cd4579724
Attached To
rGFS Google foobar
Event Timeline
Log In to Comment