Problem Statement
You are given the
Definition
- Class:
- EasyConversionMachine
- Method:
- isItPossible
- Parameters:
- String, String, int
- Returns:
- String
- Method signature:
- String isItPossible(String originalWord, String finalWord, int k)
- (be sure your method is public)
Notes
- Timmy may change the same letter multiple times. Each time counts as a different move.
Constraints
- originalWord will contain between 1 and 50 characters, inclusive.
- finalWord and originalWord will contain the same number of characters.
- Each character in originalWord and finalWord will be 'a' or 'b'.
- k will be between 1 and 100, inclusive.
Examples
"aababba"
"bbbbbbb"
2
Returns: "IMPOSSIBLE"
It is not possible to reach finalWord in fewer than 4 moves.
"aabb"
"aabb"
1
Returns: "IMPOSSIBLE"
The number of moves must be exactly k=1.
"aaaaabaa"
"bbbbbabb"
8
Returns: "POSSIBLE"
Use each move to change each of the letters once.
"aaa"
"bab"
4
Returns: "POSSIBLE"
The following sequence of 4 moves does the job: aaa -> baa -> bab -> aab -> bab
"aaa"
"bab"
5
Returns: "IMPOSSIBLE"
"aba"
"bab"
5
Returns: "POSSIBLE"
"aababbabaa"
"abbbbaabab"
9
Returns: "IMPOSSIBLE"
"ababbababab"
"bababaabaaa"
36
Returns: "POSSIBLE"
"aabaababaaaabbaaaaaabbaabba"
"bbbbabbabaabaabaabaaabbbabb"
20
Returns: "POSSIBLE"
"aababbabaabbbbbbaab"
"abbbabaabbbbbaaaaaa"
31
Returns: "IMPOSSIBLE"
"abbbaaabbaaababbaabbbaaabbbaabbbaabbaaaabb"
"aaabbaaabbaabbababbbbbbbbbabbbbabbaaaabbba"
15
Returns: "IMPOSSIBLE"
"ababbabbaaabbaabaabbabbbaaaaaaaba"
"bbbabbabababbaaaaaabababaababaaaa"
19
Returns: "IMPOSSIBLE"
"aaaaabaabaa"
"aabaababaab"
17
Returns: "IMPOSSIBLE"
"baabbaaabbbaaabbabbbbaaab"
"baaabaaaaabbaabbbaaaaabab"
47
Returns: "IMPOSSIBLE"
"babbabbababaabbaabbaaabaabba"
"bbbaaabababbaaaababbaabbbbab"
7
Returns: "IMPOSSIBLE"
"bababbabababaaababbabababbabbaaabaa"
"bbbbbaaaaaababbabbbabaabbbbabbbbbbb"
6
Returns: "IMPOSSIBLE"
"abaabbbababbbbbabbaabaaabbbaabbbabbbaba"
"babaaaaaababbbbaabbbaabbaabbaaaaabbbbaa"
5
Returns: "IMPOSSIBLE"
"bbbbababaaaaabbbaabbabaaabaabbbbb"
"babbbbaabbabaaabbaaabbbaaaaabaaab"
46
Returns: "IMPOSSIBLE"
"baabbaabbabbbaababaabbbaabaabbaaabbbabbabbba"
"abbbbabbababbbaaabbbbaababaaabaabbbaabaaabba"
14
Returns: "IMPOSSIBLE"
"aabababbabbaaaab"
"aababababbababaa"
27
Returns: "IMPOSSIBLE"
"bbabbbabbba"
"ababaabaaba"
16
Returns: "POSSIBLE"
"aaababaaabaababbabbabaaaa"
"baabbabbaabaaabababaaaaaa"
10
Returns: "IMPOSSIBLE"
"abbabaabbbbbababbabbbbbbbaaaabbbabbababbbaaaaa"
"aaaaaaaaababbaabbaabbababbbbbaabaabbbaabbabbba"
20
Returns: "IMPOSSIBLE"
"abaabbaaaaabbaabbbbabbbaba"
"abababbabbbaaaaabaabbaaaab"
19
Returns: "IMPOSSIBLE"
"aababbaaabbaaaaabbabaabaaabbaabbb"
"aabbabbababababbababbbbbaabaabaaa"
5
Returns: "IMPOSSIBLE"
"babaaaaabaabbaaaaaa"
"baaaabbabaabbbbabab"
45
Returns: "POSSIBLE"
"abbaabbbbaabbbbabbaabbbaab"
"baabbabbbbbbbaaabbaaabbabb"
11
Returns: "IMPOSSIBLE"
"abaababbaabbbbbabbbb"
"bbaaaabbaababbaaaaba"
1
Returns: "IMPOSSIBLE"
"aabaaabaaaaaabbbaaabbbabbbbabbaaaaabaabbbabababb"
"aabaabbababaabaabbbbbbabbabbabaaababbaababaabbaa"
30
Returns: "POSSIBLE"
"b"
"a"
46
Returns: "IMPOSSIBLE"
"babbaababaaabaabaaaaabbbaaab"
"baababaaabababbaabbbaaaabbaa"
32
Returns: "IMPOSSIBLE"
"aaaababaaaaabbbbaaab"
"aaabbbababbbaaaaabab"
41
Returns: "IMPOSSIBLE"
"baabbabbbbabaab"
"baaaabbbbaaabba"
50
Returns: "POSSIBLE"
"ababababaabaabbbabbbbbbbbaabaabaababaabbbb"
"baaaabbaabbbbabaaaababaaabbbabbababaababaa"
20
Returns: "IMPOSSIBLE"
"abbbaaabbaaaaaabbbbbababaab"
"bbaabaaabbbbabbbbbbbabaabaa"
4
Returns: "IMPOSSIBLE"
"bab"
"abb"
49
Returns: "IMPOSSIBLE"
"abbbaaabbbabbbabbbbabaaabbabbb"
"aaabbabbabbabbabaababbaaaaabba"
10
Returns: "IMPOSSIBLE"
"bbabaabbabaabbbabbabbaabbbaababaabbbbabb"
"baabbabbabbaabaaabaabaaabababbababbbbbba"
1
Returns: "IMPOSSIBLE"
"aaababbbbaaababababbaabaabbaaabaaaaabababaaababbab"
"abbababbabbbabbbbbababaabbaaaaaabbbbbaaaaaabbbaaab"
24
Returns: "IMPOSSIBLE"
"abbbbaabababaaabbabbbabbaaabba"
"babbaaaaabbabababbbbbbaabbaaab"
31
Returns: "IMPOSSIBLE"
"a"
"b"
28
Returns: "IMPOSSIBLE"
"babaabababbaaabaabbaaababbaaaaaaabaabbabbabaaaaa"
"aabbbaaabababbabbabbbbbbbaababbababbabaababbabab"
37
Returns: "IMPOSSIBLE"
"bbbbbbbaaaaabbbabababa"
"abbabbaabbaabababbbaba"
43
Returns: "POSSIBLE"
"bbababababbbbbbbaaaaabbbaaabbaaaa"
"abaaaaabbbbbaabaaabbaabaaababbaaa"
11
Returns: "IMPOSSIBLE"
"abababbaaabbaaabba"
"baabaaaaabbbababba"
43
Returns: "IMPOSSIBLE"
"aa"
"aa"
1
Returns: "IMPOSSIBLE"
"bbabbbaabbbbbabbbabbaaabababbb"
"bbaabbaaaaabaaababbbbbbababbbb"
12
Returns: "IMPOSSIBLE"
"bbbaabab"
"aaaabbaa"
29
Returns: "POSSIBLE"
"bbbabbabababbaaaaababbbababbabba"
"bbbabaababbaaaaaaababbababbbabab"
21
Returns: "IMPOSSIBLE"
"aabbbaabbbaaabbababbabbaabbaaababbbba"
"aaabbbabbaaaaaaababbaaabaabbbaabaaaaa"
23
Returns: "POSSIBLE"
"bbbbbaaabab"
"ababbaaabbb"
27
Returns: "POSSIBLE"
"abbaaabbaababbababbabaababaababbbabbbaa"
"baabaaaaabbbbbbbbabaabbbbaaaaaaababbbab"
16
Returns: "IMPOSSIBLE"
"abbaaabbaababaaabbbbabbabbaaaabababaabaabbb"
"ababbaaababbaaaaaabbbabaababbbaabbaababbaba"
46
Returns: "IMPOSSIBLE"
"bbbbaaabbabbbaabbaaabbbbabbaababaabbabaaabaa"
"abbababaabaaabaaaababababbaabaabaabaaabbaaaa"
13
Returns: "IMPOSSIBLE"
"bbabbbbbaababababb"
"baabababbbaaababab"
10
Returns: "IMPOSSIBLE"
"aabaaababaabbaaaaaaaaa"
"aabaabbbaaaaaaabaabbab"
21
Returns: "POSSIBLE"
"abbaaababaabbabbabbaabaabaababaabaaaaaaaaabbbbbb"
"abbbaaababbbaaabbbbbaaaaaaaaababbbaabaabababaabb"
37
Returns: "POSSIBLE"
"bbbbabaabaabaaababbbbbabaaabbbb"
"bbabbbabbaabbbbbbababbbbbaababa"
37
Returns: "POSSIBLE"
"baaaabbbaaa"
"bbaababbbaa"
25
Returns: "IMPOSSIBLE"
"abaaaaabbbbaaababaaaabbabbaaabaabaabbb"
"aabbabaabbaabbbbaababbaaaaabbabababbaa"
5
Returns: "IMPOSSIBLE"
"abbaaaaabbbbbbbabaaabbabab"
"bbbaabaaaabaabaabbaababaab"
29
Returns: "POSSIBLE"
"baab"
"aabb"
6
Returns: "POSSIBLE"
"abbab"
"aabba"
4
Returns: "IMPOSSIBLE"
"baaaaabababbbbbaabbaba"
"bababbbbabbaaaabaabbbb"
12
Returns: "IMPOSSIBLE"
"baaaaaabbaabbaababbaa"
"abbbbabbbbbaaabaababa"
21
Returns: "IMPOSSIBLE"
"bbaaabbbbbaabbbaaababbbbbaab"
"aaaaaaababbbabbabaaabababbba"
25
Returns: "POSSIBLE"
"abbabbbbaababbaabbaaaabababaabbabbbabbabbabb"
"aaaabbababaaaabbabaabbaaaabaabbbbaabbbababba"
29
Returns: "POSSIBLE"
"abaabbabababbbbaabaab"
"baabbababbabaabbbbbbb"
44
Returns: "IMPOSSIBLE"
"bbaaaaabbababababaaabaababbabaaabbbabb"
"abaabbbbabbababababaaabbaaaaababaababb"
45
Returns: "IMPOSSIBLE"
"abaaabbbbabbbbbbbbabbbabbbbaaaaba"
"aababbbaaabbabbaaabaababaaaaabbbb"
44
Returns: "POSSIBLE"
"bab"
"bbb"
19
Returns: "POSSIBLE"
"bbababaaababbabbabababb"
"aabaabaaaaabaaabbbbbaab"
18
Returns: "POSSIBLE"
"aaabbabaabbbabbaaaaabbaaabbabaabbababbab"
"bbbaabbabaababbaaaaaaaaaabbabaabbabbaaab"
29
Returns: "IMPOSSIBLE"
"baabbaabba"
"aaaaababab"
93
Returns: "IMPOSSIBLE"
"abab"
"abba"
47
Returns: "IMPOSSIBLE"
"bbaaabaabaabaababaabaaababaaabbabbbaab"
"baaabbbbababaababbbaaababaaabaabbbbabb"
10
Returns: "IMPOSSIBLE"
"babbabb"
"aaabbab"
39
Returns: "IMPOSSIBLE"
"bababaaababb"
"bbabababbaab"
28
Returns: "IMPOSSIBLE"
"abaabbbbbabbbabbbabbbaabaabba"
"abbaaaaaabbaaaaaaabbbabbaaaab"
3
Returns: "IMPOSSIBLE"
"bbabababbaababbabbbababbb"
"abaaaababaaabaaababbbaaab"
3
Returns: "IMPOSSIBLE"
"bbaabbababbabbbabbabbbbaabbbbabbbab"
"baaabaabbaabbaabababbabaabbbaaaaaaa"
33
Returns: "IMPOSSIBLE"
"baaaaabbababaaaaaabaaaaabaabbbaaabaaabbabbbabaaba"
"ababbaabbabbaaabaababbaabbaababbabbbbabbaaaabbbba"
30
Returns: "POSSIBLE"
"bbabbbbaaaaabbbaabbbabbbabbaaabbaa"
"baaaabbbabaabbaababbabababaabaaaab"
47
Returns: "IMPOSSIBLE"
"babbaabaaabaabbbabaaabbbababaaabbaabbaaabbaaab"
"baaabaabaaaaabababbabbbaaaababaababaaabaabbaab"
11
Returns: "IMPOSSIBLE"
"abbbbababbbbaaabaaaba"
"aabbbbabbabbbbbabaaba"
29
Returns: "IMPOSSIBLE"
"aaabaababbaaaabbababa"
"abbabaaabaabbbbabaaba"
97
Returns: "IMPOSSIBLE"
"ababaaabaabababbbbabbbb"
"abaabbaaaabaabbbbbbabab"
100
Returns: "IMPOSSIBLE"
"bbbaabbabbbabababbabbbbabbabbbaaabab"
"babaaaaaaaaabababaabbbaaaababbbabbaa"
35
Returns: "POSSIBLE"
"aabbbbbbab"
"baaabaabba"
32
Returns: "IMPOSSIBLE"
"babbbbaabaabbaaaaaaaaaaabbbbabababaabbaaabaabbb"
"aaaababbabbbbabaaababbbabbbbaaaabbaaaababbbbbbb"
1
Returns: "IMPOSSIBLE"
"bbbbbbaaabbababaabbaabbaaaabaababaaaa"
"aaaaaaabbbaabaaabbaabbaaabaaabaabaabb"
92
Returns: "POSSIBLE"
"bbbabaaabababaaaaaababbaaaba"
"bbabbbbabbbbaaaabaaabbbabaaa"
37
Returns: "IMPOSSIBLE"
"bbbabaabababbbabbbabaaaba"
"aabaababaaaaabbbaaaaaaabb"
11
Returns: "IMPOSSIBLE"
"babaabbaabaabbba"
"aabbbabbababbaab"
29
Returns: "POSSIBLE"
"aabaabbabbbababbbbb"
"babbbbbbbaababbbbab"
7
Returns: "IMPOSSIBLE"
"aabaabaaababaabbbbabbabbbabba"
"abbbbaabbaababaaabbbbbaaabbba"
26
Returns: "IMPOSSIBLE"
"a"
"b"
34
Returns: "IMPOSSIBLE"
"aabbabbababaabaaaaaababaaab"
"aabaabbabababbbbbbaaaababab"
43
Returns: "IMPOSSIBLE"
"aaaaaabbabaaaababbababbaababbaaab"
"baaaaabababbbbabaaabbabbbbabbbbbb"
14
Returns: "IMPOSSIBLE"
"ababbbabaababbbaaabbabbabba"
"bbbabaaaabbbaaabbbbbababbaa"
33
Returns: "IMPOSSIBLE"
"bbaabbabaabbabaabbaaababbbaaaaaabbbbbbaaaaaaabba"
"ababbaabaaabaabbbaaabbbbbaabbbabbbbbbbbabbabaaba"
36
Returns: "POSSIBLE"
"bbabbababaaabaabbbababaabaabbbbbaaaaabababbab"
"aaaaabababbbbbabaaabbbabbbaababbbbaaaabbabbbb"
93
Returns: "IMPOSSIBLE"
"bababbaaabbaaabababbbabbbbbbaababaaababaaaabaaa"
"aabbabbabbbbbabbbaabaabaabaababbbaaaaaabbabbabb"
14
Returns: "IMPOSSIBLE"
"abababaaabb"
"bbbbbbbbbba"
19
Returns: "POSSIBLE"
"bbbabbbaabaaaabbbbbbbbaababbaaabaaaababaabbb"
"aaaabaabaababaabbaaaabbabbbbbbaabaaabbaaabab"
30
Returns: "IMPOSSIBLE"
"aaaaabaababaabbabbbaaabbbaabaaabaabbaaaaabbbbbb"
"baaababbbabbabbbabaaababaaababbaaabbbabbbbbbbbb"
93
Returns: "POSSIBLE"
"bbbbaabaaabbbbbbaabbaabbbbabaababaabbaaabaaaba"
"babbabbaaababbaaabbaabbbbaabababaabbbaabbbaaaa"
24
Returns: "IMPOSSIBLE"
"a"
"b"
1
Returns: "POSSIBLE"
"aaaaa"
"bbbbb"
3
Returns: "IMPOSSIBLE"
"aabbb"
"bbbbb"
3
Returns: "IMPOSSIBLE"
"aa"
"aa"
2
Returns: "POSSIBLE"
"aaabb"
"bbbbb"
5
Returns: "POSSIBLE"
"aaaa"
"aaaa"
10
Returns: "POSSIBLE"
"abab"
"baba"
5
Returns: "IMPOSSIBLE"
"a"
"a"
2
Returns: "POSSIBLE"
"aaaa"
"babb"
5
Returns: "POSSIBLE"
"aaa"
"bbb"
5
Returns: "POSSIBLE"
"a"
"b"
90
Returns: "IMPOSSIBLE"
"aabb"
"bbaa"
2
Returns: "IMPOSSIBLE"
"aaaaa"
"bbbaa"
5
Returns: "POSSIBLE"
"bab"
"aaa"
10
Returns: "POSSIBLE"
"abab"
"abab"
4
Returns: "POSSIBLE"
"ab"
"ba"
10
Returns: "POSSIBLE"
"a"
"a"
1
Returns: "IMPOSSIBLE"
"aab"
"aab"
2
Returns: "POSSIBLE"
"aa"
"aa"
4
Returns: "POSSIBLE"
"aaab"
"bbbb"
5
Returns: "POSSIBLE"
"aaa"
"aaa"
2
Returns: "POSSIBLE"
"aa"
"aa"
3
Returns: "IMPOSSIBLE"
"abbba"
"aaaaa"
5
Returns: "POSSIBLE"
"aaa"
"aaa"
100
Returns: "POSSIBLE"
"ab"
"aa"
2
Returns: "IMPOSSIBLE"
"aaab"
"abba"
5
Returns: "POSSIBLE"
"abbba"
"abbba"
2
Returns: "POSSIBLE"
"a"
"b"
2
Returns: "IMPOSSIBLE"
"aaaa"
"bbbb"
2
Returns: "IMPOSSIBLE"
"ab"
"ab"
2
Returns: "POSSIBLE"
"abbab"
"babaa"
1
Returns: "IMPOSSIBLE"
"aaaaa"
"bbbbb"
7
Returns: "POSSIBLE"
"aaa"
"aaa"
3
Returns: "IMPOSSIBLE"
"aaab"
"bbaa"
5
Returns: "POSSIBLE"
"aa"
"aa"
100
Returns: "POSSIBLE"
"aaa"
"bbb"
6
Returns: "IMPOSSIBLE"
"aab"
"abb"
10
Returns: "IMPOSSIBLE"
"ab"
"ab"
1
Returns: "IMPOSSIBLE"
"aba"
"abb"
1
Returns: "POSSIBLE"
"aabb"
"aabb"
2
Returns: "POSSIBLE"
"abb"
"aab"
11
Returns: "POSSIBLE"
"aaaaa"
"bbbbb"
20
Returns: "IMPOSSIBLE"
"aaaaaa"
"aabbbb"
6
Returns: "POSSIBLE"
"aaaaa"
"aabbb"
5
Returns: "POSSIBLE"
"aababbabaa"
"abbbbaabab"
8
Returns: "POSSIBLE"
"aba"
"bbb"
3
Returns: "IMPOSSIBLE"
"aaaaaaaaaaaaa"
"bbbbbbbbbbbbb"
13
Returns: "POSSIBLE"
"a"
"a"
6
Returns: "POSSIBLE"
"ab"
"ba"
4
Returns: "POSSIBLE"
"ababab"
"ababab"
2
Returns: "POSSIBLE"
"ab"
"aa"
3
Returns: "POSSIBLE"
"aaaaaaa"
"aaaaaab"
3
Returns: "POSSIBLE"
"aaa"
"bbb"
1
Returns: "IMPOSSIBLE"
"aaab"
"aaaa"
2
Returns: "IMPOSSIBLE"
"abab"
"bbaa"
2
Returns: "POSSIBLE"
"aab"
"aaa"
4
Returns: "IMPOSSIBLE"
"aaaa"
"aaaa"
2
Returns: "POSSIBLE"
"aba"
"bba"
1
Returns: "POSSIBLE"
"aaaaaa"
"bbbaaa"
5
Returns: "POSSIBLE"
"aaaabbb"
"aabaaab"
7
Returns: "POSSIBLE"
"abb"
"baa"
5
Returns: "POSSIBLE"
"aaaaa"
"bbbbb"
1
Returns: "IMPOSSIBLE"
"bbbbb"
"aaaaa"
3
Returns: "IMPOSSIBLE"
"aabbb"
"aaaaa"
5
Returns: "POSSIBLE"
"abab"
"baba"
2
Returns: "IMPOSSIBLE"
"aaaaaaa"
"aaaaaab"
2
Returns: "IMPOSSIBLE"
"aa"
"ab"
4
Returns: "IMPOSSIBLE"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
100
Returns: "POSSIBLE"
"aaaab"
"bbbab"
7
Returns: "POSSIBLE"
"aaa"
"aab"
4
Returns: "IMPOSSIBLE"
"aaaaaa"
"bbbbba"
6
Returns: "IMPOSSIBLE"
"aaa"
"bbb"
7
Returns: "POSSIBLE"
"abab"
"abba"
4
Returns: "POSSIBLE"
"aaaaaaaaaaaaa"
"bbbbbbbbbbbbb"
26
Returns: "IMPOSSIBLE"
"aaaa"
"bbbb"
1
Returns: "IMPOSSIBLE"
"aaaa"
"aaab"
2
Returns: "IMPOSSIBLE"
"baab"
"bbbb"
2
Returns: "POSSIBLE"
"aab"
"bba"
5
Returns: "POSSIBLE"
"abbba"
"aaaaa"
4
Returns: "IMPOSSIBLE"
"aaaa"
"aaaa"
4
Returns: "POSSIBLE"
"abababab"
"aaaaaaaa"
2
Returns: "IMPOSSIBLE"
"aabbaa"
"bbaaaa"
6
Returns: "POSSIBLE"
"aaabb"
"bbbbb"
6
Returns: "IMPOSSIBLE"
"aabb"
"babb"
2
Returns: "IMPOSSIBLE"
"aaa"
"aab"
1
Returns: "POSSIBLE"
"abaababa"
"baaaabba"
6
Returns: "POSSIBLE"
"aa"
"bb"
4
Returns: "POSSIBLE"
"aaaa"
"aaaa"
3
Returns: "IMPOSSIBLE"
"aabb"
"bbaa"
8
Returns: "POSSIBLE"
"aaa"
"bbb"
3
Returns: "POSSIBLE"
"abababab"
"aaaaaaaa"
14
Returns: "POSSIBLE"
"aaa"
"aaa"
6
Returns: "POSSIBLE"
"aaaa"
"babb"
4
Returns: "IMPOSSIBLE"
"aaa"
"bbb"
9
Returns: "POSSIBLE"
"aaaaabbb"
"bbbbbbbb"
6
Returns: "IMPOSSIBLE"
"aba"
"bab"
3
Returns: "POSSIBLE"
"ab"
"bb"
1
Returns: "POSSIBLE"
"aba"
"aaa"
1
Returns: "POSSIBLE"
"aaaaaaaaaa"
"bbbbbaaaaa"
3
Returns: "IMPOSSIBLE"
"a"
"a"
100
Returns: "POSSIBLE"
"abbbab"
"aaaaaa"
6
Returns: "POSSIBLE"
"aaaaa"
"bbbbb"
14
Returns: "IMPOSSIBLE"
"aba"
"bab"
6
Returns: "IMPOSSIBLE"
"aabba"
"bbbaa"
5
Returns: "POSSIBLE"
"aaaaa"
"bbbba"
10
Returns: "POSSIBLE"
"aa"
"ba"
2
Returns: "IMPOSSIBLE"
"aaa"
"bba"
3
Returns: "IMPOSSIBLE"
"ababa"
"babab"
7
Returns: "POSSIBLE"