Problem Statement
Recently, to avoid hackers' attacks on the Arena, SRM imposes a new rule for the users' passwords. From now on, the first K characters of each user's password must match its last K characters. In this way, if someone enters a password with different first and last K characters repeatedly, it can be considered an attack from hackers.
However, you love your old password and do not want to change many characters from it. You are given a
Definition
- Class:
- NewArenaPassword
- Method:
- minChange
- Parameters:
- String, int
- Returns:
- int
- Method signature:
- int minChange(String oldPassword, int K)
- (be sure your method is public)
Constraints
- oldPassword will contain between 1 and 50 characters, inclusive.
- Each character of oldPassword will be a lowercase letter 'a' - 'z'.
- K will be between 1 and the number of characters of oldPassword, inclusive.
Examples
"topcoderopen"
5
Returns: 3
A possible solution is changing your password into "topcndetopcn". To do this, you must change the 4th, 7th, and 10th characters (0-based) of "topcoderopen".
"puyopuyo"
4
Returns: 0
Your old password already satisfies the new rule.
"loool"
3
Returns: 1
The first and the last K characters can overlap. In this case, the only optimal solution is to change your password into "lolol".
"arena"
5
Returns: 0
"amavckdkz"
7
Returns: 5
"a"
1
Returns: 0
"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwx"
25
Returns: 25
"dddddddddd"
10
Returns: 0
"pppppppppppppppppppppppppppppppppppppppppppppppppp"
20
Returns: 0
"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm"
40
Returns: 0
"gggggggggggggggggggggggggggggggggggggggggggggggggg"
49
Returns: 0
"qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq"
50
Returns: 0
"ppppppbppppppppppcpvpppppempppeppipppsppxpvppcpppb"
40
Returns: 12
"exixxxxxxxfxxxxmaxxjoxxixxtukikxohxjdaxxkxxxaxxyxx"
25
Returns: 17
"bbbbbbtbbbibbbbibbbbbdebbbmbabbbbbbbbbbbbbbsbbbbbq"
26
Returns: 9
"qqrhqkvrdjqbqlgupp"
13
Returns: 11
"amsap"
4
Returns: 3
"m"
1
Returns: 0
"y"
1
Returns: 0
"zznzwnzwzotyvazzfvizwszfxzrfv"
1
Returns: 1
"sxggihreglrprrccrthrajejrprrirxesinrwmrrkprhrraqrp"
27
Returns: 23
"ogjv"
1
Returns: 1
"panyapppppwnrppqjvjjneseppvptppipppmbkwdpjpspj"
40
Returns: 27
"wzvqoouzuuuulpkutduzyaqcbucvutzujizuuuxmkouujueqek"
3
Returns: 3
"clzlyhsolltlzsd"
4
Returns: 4
"ieahdbcjfg"
10
Returns: 0
"hiednovaxtmckzwromadgxgfqlukhlbpvqfbsyrwectijunsjp"
20
Returns: 19
"xbsezqhpsfogltcigaujbwxuaflywjdtvpmcvrrkqmdoknnihe"
40
Returns: 39
"xebopvfjkticldrgslnhfqozgtunvrxicmjaesduwymqbphwka"
49
Returns: 48
"rzqglrxwqieuajpnfatvsgouckxvphftscwblmdmhiknebdoyj"
50
Returns: 0
"bjooeojevfoyvbhpfkxpcqtdnsswdilsvddaxaudgsmtiqrcuk"
40
Returns: 36
"fpqyvjmntcehloovjujrdxodqthsgawlpzjtkavwsqnrdvkzbb"
25
Returns: 25
"kmucdqlvvsynnmxtwebqabvfhkguolwaeghoopnjdjairspzck"
26
Returns: 25
"bedsz"
1
Returns: 1
"glybaleynedaeojalbxyzmdyoj"
12
Returns: 11
"ojuuykqyhuonhtntbzohodacppnts"
1
Returns: 1
"ltnuokgdfcsarpprevefatxppwliuhqzhsb"
13
Returns: 13
"pctvjpjadiloocggoefdehiflwmmaydhb"
2
Returns: 2
"unkeiuvtdytbkotejcj"
10
Returns: 10
"crgfpbe"
1
Returns: 1
"kfqeywktcqmixbddwdlihxhaatuenq"
8
Returns: 8
"y"
1
Returns: 0
"nsdzqogumtcupzpskbhsokzwoseafxn"
15
Returns: 15
"aa"
1
Returns: 0
"ab"
1
Returns: 1
"aa"
2
Returns: 0
"ab"
2
Returns: 0
"aba"
2
Returns: 1
"abab"
3
Returns: 2
"aabb"
4
Returns: 0
"aabb"
3
Returns: 2
"aacbbbcca"
3
Returns: 3
"aacbbbaaa"
3
Returns: 1
"aaabbbcaa"
3
Returns: 1
"aaabbbccc"
3
Returns: 3
"pjeahomjpgeoscahcmnwknkhaqsyytspewpmn"
36
Returns: 33
"bvffvmijbgvoscpivpiqixvgnjvtgadhv"
29
Returns: 25
"x"
1
Returns: 0
"qxchizwqpgqmnfxkydkdnhoccmzimejcbn"
32
Returns: 30
"ccosqdxopxrcaejoindhvpnhtpue"
27
Returns: 25
"l"
1
Returns: 0
"gvrwsjytpjjyzmhwdvdymycohqtstpvclnyd"
33
Returns: 30
"njiniwxfauiaiidwpvphqhdsuqszqsydcitkgsrimajwims"
45
Returns: 39
"ztmunemmufkajuttbnnjznsvxgpxrbfrutnhyzusggsp"
44
Returns: 0
"aynzngwmookgprzkkmr"
15
Returns: 15
"uutjvhwzjumljuhw"
13
Returns: 10
"nzqzlcswpgxjasvxbrylokyxhftsfdjscztqblmq"
37
Returns: 33
"fxqjoowcbucibx"
1
Returns: 1
"lafktvnfjfyuhsagklvzhz"
21
Returns: 19
"ebolczlhlhfyoofmjpglvrwssfsuivimw"
29
Returns: 27
"liiupiidnwoefzawxsqemmmkuzisyjpltxfi"
33
Returns: 28
"ocbtddrbxhfktuwptehtpwfkvmseeiask"
31
Returns: 29
"eqenyqgsmxlsegi"
13
Returns: 10
"cndgxfahhnwptntgljodxlqqryavmuuqjzwgeypn"
10
Returns: 9
"gbwmmiarfnjxejzzvuvlfujmahboup"
2
Returns: 2
"poezoxhbighsginadbfzmta"
23
Returns: 0
"mjtfajjayhjbp"
11
Returns: 9
"txxzafymyaixqbkbwpcfaedhnhzcsianhxmhenud"
40
Returns: 0
"gfmjbdlhe"
5
Returns: 5
"cvohpxhdggpolckqsosawhjzkvgokvcpqqygphlwpamcdw"
46
Returns: 0
"vkugkgbsvopzfgrdohmzfbbrggpaddnaojhyqisn"
5
Returns: 5
"dqfigouhtyimgpbgsfwtvfavxinmhxamn"
31
Returns: 28
"raorlcxaeeslanghnbhyq"
20
Returns: 18
"tdcqxwizmzkpxkvdfgfuomirt"
23
Returns: 21
"xlkbnd"
6
Returns: 0
"ymkplwkodsvyiiizdqiujgfvjsyj"
28
Returns: 0
"yuvjtfawzvwhfei"
12
Returns: 11
"f"
1
Returns: 0
"bhfzsjldplzkwsrwrqunzbshmoaswyfxikyawlflwfwtznrq"
46
Returns: 40
"pypbopvkpcjznkajxhwuospogigowkvl"
9
Returns: 8
"bbmltoxsbjumgcjcqdr"
15
Returns: 14
"zyzvlkhbllpyeexyhgtwnxfppijyullvlkqywabjlrkrvh"
4
Returns: 4
"kadjfubqdzmqkhdwadvafenwqgtyxxokyttfnwvtv"
38
Returns: 32
"pgtsbvzhivyooynooxmhttwprr"
14
Returns: 13
"wtucmodhqnrllhclvszseinzgfqasrfombrzrwihlavwhx"
20
Returns: 16
"ixvsmwbrnblggashtryrcidcdblalq"
27
Returns: 24
"qbkrvzugfaiyjdrjxtrcxudjwqbpoqdetqxoprxvthv"
42
Returns: 39
"ig"
2
Returns: 0
"zpowiplwfrcbjbpyuovnwqrjdctlhfqjwffeus"
11
Returns: 11
"gd"
2
Returns: 0
"blqqhhhqmmlxtqpemulrrg"
20
Returns: 17
"ymjuhnfzdmgne"
12
Returns: 11
"uhjzudknuqipkknywkhlpgqepdijeadzhmadrkqm"
37
Returns: 34
"ltnjduwsanwpshbxhewqswujikxnlbczupkxlhpouodmvgjcmh"
1
Returns: 1
"ooozlbmmeliv"
9
Returns: 9
"xvznanijzmvggamvoawbbiqhwyfugmbf"
22
Returns: 20
"lpauqoqxwsltglpjoazwyydugpvlaxdlofiftaeps"
38
Returns: 34
"ajqcloajrurirckqfyfkgmfgswajhalij"
31
Returns: 27
"snfljwwbagtfeyrmmwugt"
19
Returns: 17
"a"
1
Returns: 0
"xaykijvgfyhosossghfeblzwbcqdoyjlzhxjttparyoln"
42
Returns: 38
"qjzrwznzbgdpemdfwaqpvipp"
3
Returns: 3
"vneqdpqwormnuusjahogdryumgj"
27
Returns: 0
"kekbjctgqksfemypmheumxtglbrpshvdnhgxlbdblxj"
42
Returns: 39
"xqmucjnkvqbmjkjoyqwxcxafi"
19
Returns: 18
"abababcbc"
7
Returns: 2
"cbba"
3
Returns: 2
"abcdffg"
6
Returns: 5
"aabbccaa"
6
Returns: 4
"qkjwqkjwjwjwjjwjwjjwjwjwjwjwjwjwjwqkjwjwjwqkjwjwjw"
49
Returns: 28
"abdfacdfbcefbcegbbeg"
16
Returns: 8
"abababccabcccb"
13
Returns: 9
"dcdaaccaacbbcbbaccacdcbc"
23
Returns: 14
"dzsaqweasdafasdasdafasdasdasdzasqzasfasqweashtrasr"
49
Returns: 36
"bcacacacbc"
8
Returns: 2
"jzpzsgnspqxwjgjxiuyljxyzmaufsuwqrheqerczugavrbnjfd"
34
Returns: 33
"aaaaaababab"
9
Returns: 3
"cdad"
3
Returns: 2
"aaaaabbbbbbb"
11
Returns: 5
"cabcccabcbcddadabdbbcaccacabcbcabadbacacacbcbccaca"
39
Returns: 25
"abbbbabbb"
8
Returns: 2
"amavckckc"
7
Returns: 4
"bacaabbabcccbccbaaabbbccbbcacbcababac"
35
Returns: 21
"abcdefghijklmnopqrstuvwxybcdefghijklmnopqrstuvwxyz"
29
Returns: 29
"ddaa"
3
Returns: 2
"yeykeqbkzhenafzcivuabcbndzvsfhykyctwjkwnaegzsaiykh"
39
Returns: 36
"abbabba"
6
Returns: 3
"acacbdbdb"
7
Returns: 4
"xeywyxpvwiencehqsybcnfgjkwtvrkhoommnbwlafymsiftcmh"
48
Returns: 44
"abcabcabc"
8
Returns: 6
"abchahachbbhhbhcahhc"
19
Returns: 12
"baba"
3
Returns: 2
"aabbccdd"
7
Returns: 6
"abc"
2
Returns: 2
"abcdb"
4
Returns: 3
"aabbaaabbaa"
9
Returns: 4
"aaaaaaabbbbbbbbbbbbbbccccccccccccccccccccccccccccc"
47
Returns: 21
"bbaabaaaaabbbbbbbababaabaabaabbabababbbabbabbabbba"
40
Returns: 14
"ababababcdcdcdcdefefefef"
23
Returns: 20
"abcaaaa"
6
Returns: 2
"abchahachbbhhbhcahhcabchahachbbhhbhcahhc"
39
Returns: 24
"ajlfvgubfaaovlzylntrkdcpwsrtesjw"
31
Returns: 29
"gxzkktitxocthykzzttlcaieylusuvykdcpipningrgaszyrxe"
49
Returns: 45
"bbooo"
4
Returns: 2
"aabbbbb"
6
Returns: 2
"abababab"
7
Returns: 4
"acacbcbc"
6
Returns: 2
"abbcc"
4
Returns: 3
"bxaxcxb"
5
Returns: 2
"zyyyz"
3
Returns: 1
"aaabbbccc"
8
Returns: 6
"izbjetjnxrqlhoiolxqtggjkmwicixndhetycwwnslchfrnkrn"
40
Returns: 37
"abcdddddeeeeeee"
14
Returns: 8
"abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde"
49
Returns: 40
"jbabdbjbj"
7
Returns: 2
"abccbcabaa"
7
Returns: 2
"babb"
3
Returns: 1
"axaxbxbxbxbxbxbxbxbxbxaxa"
23
Returns: 4
"aaaabb"
5
Returns: 2
"amamckdkz"
7
Returns: 5
"aebdcec"
5
Returns: 3
"baadbb"
2
Returns: 1
"abcdefghhhabcdefghijabcdefghijabcdefghijabcdefghij"
49
Returns: 43
"bacaa"
4
Returns: 2
"aaba"
3
Returns: 1
"owdgeljytvsmafyfmrvtfwroccbhrmgzzlpxuycnclfvtkiuzb"
34
Returns: 32
"ababababab"
9
Returns: 5
"ababbcccc"
8
Returns: 5
"abadfadsda"
9
Returns: 6
"ltmehkfjhdgnudxmkwiudapflpvvqlncwk"
16
Returns: 16
"aaaabbbb"
7
Returns: 4
"abcabc"
5
Returns: 4
"abcdeffabcdeffabcdeff"
20
Returns: 15
"cbcbabcbcbcb"
10
Returns: 1
"abcdefghijklmnoabcdeflkdjfsoiermnfsdljkldjlkjalkdd"
48
Returns: 43
"kaiefkkjcmcmjjdsahushfiosjlkfnsadlksdjssjuorioujkl"
48
Returns: 41