Problem Statement
You are given a
- Insert a new character anywhere into the string (including its beginning and end).
- Remove a single character.
- Replace a single character by another character.
Please compute and return the smallest number of operations needed to change the given s into a square. Note that this is always possible: for example, you can remove all characters (one at a time).
Definition
- Class:
- RepeatString
- Method:
- minimalModify
- Parameters:
- String
- Returns:
- int
- Method signature:
- int minimalModify(String s)
- (be sure your method is public)
Constraints
- s will contain between 1 and 50 characters, inclusive.
- Each character in s will be a lowercase English letter ('a'-'z').
Examples
"aba"
Returns: 1
One of the optimal solutions is to remove the 'b'. This changes the given s into the square "aa".
"adam"
Returns: 1
Here, one optimal solution is to change the 'm' to 'd' to get "adad".
"x"
Returns: 1
This time one optimal solution is to append another 'x' to get "xx".
"aaabbbaaaccc"
Returns: 3
For example, we can change this string into "aaabbbaaabbb". Note that this requires three operations, not one.
"repeatstring"
Returns: 6
"aaaaaaaaaaaaaaaaaaaa"
Returns: 0
"aabbaa"
Returns: 2
"ab"
Returns: 1
"aa"
Returns: 0
"asjkldjlakjfwqijfoiwqjofijoiajfoisfdsf"
Returns: 14
"jfjfijfoiqwjoifjoiqjwoijfoijsaf"
Returns: 9
"ajodiqjpwjpjdqpwijdijasjdklajfoiqwjoidqwdwq"
Returns: 16
"abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedc"
Returns: 24
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
Returns: 0
"htkaocdcabcbmyaeqcgcfolac"
Returns: 10
"ojhrqpffkcgfboaifhalcaebixaksaecanhfknfcccdg"
Returns: 20
"gfdleabfcelbb"
Returns: 5
"bfla"
Returns: 2
"ffkcgdlfjwapbaahmgjadqefdbhaajjjaipnblmdi"
Returns: 17
"fci"
Returns: 2
"ccdlhbafntfbpfhhafkbgrdacqcgsmoammngqfbabgncaam"
Returns: 19
"sahvebmvberdefauftaglmlele"
Returns: 11
"cp"
Returns: 1
"abatjadqdaaaidgcfsepjmla"
Returns: 11
"pkafkbeabccfjejkdgkaatcedaocgmecaapakfvbfgefr"
Returns: 20
"em"
Returns: 1
"haachhaddendmffiqafksllbibqjad"
Returns: 14
"dwhpaaafdpicbpplbbaediemokddtiaf"
Returns: 16
"cgaeloadefbgicomgjealbdnedpavggdcaagfpocedfaja"
Returns: 19
"emogarpc"
Returns: 4
"incgadp"
Returns: 4
"dgcbauoaaxigdaarojjgbarkcpcaoaf"
Returns: 14
"hdqnbefvefgiaddbhdbffbqajagadnbkofd"
Returns: 14
"rsafqzdpdikbfbcghlebcmaiabcgqeaih"
Returns: 16
"cbvpgogbpapnfbohhogcaalbhfbani"
Returns: 13
"fhnbhjcthbhjnjahdegcpcblbkadwepcralkhbdjtbfm"
Returns: 20
"bclbeabbbbegbfoejiaqedawbddbnadrzjgqtbaxbi"
Returns: 19
"edacdhehlbeuddd"
Returns: 7
"enpcjbfmmbqgagdc"
Returns: 8
"aauldbacaaabdeaamrk"
Returns: 7
"osaciffkqr"
Returns: 5
"mgcdagbelaaupauoci"
Returns: 8
"aeiillabeada"
Returns: 5
"cddab"
Returns: 3
"abadecivdqctbfjcibmjbgbjhcgmderac"
Returns: 15
"addbbkfcajfhdpm"
Returns: 7
"ccmibcnkccdodcchuhoefkc"
Returns: 10
"ggigachtomjggadceabiubhjdeoedamkanhcjbk"
Returns: 18
"ebgslgdgjhogcpgdpluhkabcgcdibhangka"
Returns: 16
"jcgbd"
Returns: 3
"allojpbggakabaihc"
Returns: 8
"gqcgadsahcadatjqlbdacabcpvdfm"
Returns: 11
"fkkxbsbadbbeaigkbbfcfdioagq"
Returns: 11
"boafkugpjbdaqiidibajadgaedsgdaqchagjcadli"
Returns: 17
"aonabghcgbdfabrbatcjaaaabhkcgjbsawbbkcefcbibgcnici"
Returns: 20
"bhttbaybedfiehrokjtagkfvcgdfbefrafbaamhcaadbvo"
Returns: 21
"bdf"
Returns: 2
"kibbchlifmcbijpebpynoeajca"
Returns: 12
"anlgfocrfmgfbaddbbecbcfceaskskkialdaamadqlgreg"
Returns: 22
"redcodcabhlipwakdbjkc"
Returns: 10
"bgmcyrckffaecdfgbjsgdafclnibdeaabbbmfabaqa"
Returns: 18
"baimfhkleehgletgdiejakdbaenbcb"
Returns: 13
"eddeaaifaahmddqudxhohoteidbbvjrhcercqeaghdrkec"
Returns: 20
"ijlobijiapcmsgfkbedidctgdbcfqecaeuc"
Returns: 17
"bibhtlgfaacck"
Returns: 7
"pdhmmccaafirpbenasrfbjh"
Returns: 11
"gbaaegbjcdifdaeobcyanoabfo"
Returns: 12
"dqfbifgp"
Returns: 4
"aggbsbqa"
Returns: 4
"bgkjdifjkxad"
Returns: 5
"hapbcpcdnkmbcfadptbeafbgindcdagekgaok"
Returns: 16
"adibggggbbbcacaigedaaakaaegnabaefhjqbbcabdadaiadel"
Returns: 18
"cfqoqgjj"
Returns: 4
"jnh"
Returns: 2
"qxwerytyuiopasdfabqwertyuiopasdxfax"
Returns: 4
"espritabrtcadabrfoobaraxzspiritbrabadbracadfoobaz"
Returns: 13
"abcdefdef"
Returns: 3
"oremipsumdolorsitametconsecteturadipisicingelitsed"
Returns: 21
"abcdefghiabefghi"
Returns: 2
"ababaababacc"
Returns: 2
"hniofeulhrswzbgtlzidlglzzbgtlzidlglzhniofeulhrsw"
Returns: 22
"abczab"
Returns: 2
"abcdefgabcd"
Returns: 3
"abcdbcda"
Returns: 2
"aaaxaaaxst"
Returns: 2
"aacbxdefaaxdef"
Returns: 2
"jksdhfjkhasdfjasjdfjsakhdfljkasdfjsadfhlkasdfjhsfa"
Returns: 14
"rabcabcabcabcabcabcabcabcabcabcabcdabcabcacbbcad"
Returns: 5
"abcdeabc"
Returns: 2
"bacdbcd"
Returns: 1
"aaaaaaaab"
Returns: 1
"aabcdefghibcdefghi"
Returns: 2
"abcdebcdef"
Returns: 2
"xxabab"
Returns: 2
"aabbccaabb"
Returns: 2
"zzelrpzosohruicpvaxouohjkjzsbjzzelrpzosohruicpvaxo"
Returns: 10
"abcabcxxx"
Returns: 3
"abcdefkldjflkhjwrtokvcbmrkhishihkajdhgiowrejthruew"
Returns: 22
"tabcabc"
Returns: 1
"abcdeabcdefg"
Returns: 2
"abaaaaaaa"
Returns: 1
"cdaacd"
Returns: 2
"abxyzxyz"
Returns: 2
"rcgyghdecjwezirvcebbw"
Returns: 9
"qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcv"
Returns: 3
"abcdefiiabhdefgg"
Returns: 3
"bhsodlbhsodlbhsodlzbeildhmpdhempdhempdhezcqa"
Returns: 19
"aabcbaabb"
Returns: 1
"jqfsilzibkhslzifegjyojdmtlheswlensyv"
Returns: 16
"unmnmk"
Returns: 2
"abcdefgheabcdekfgh"
Returns: 2
"abb"
Returns: 1
"abcdabzzzcd"
Returns: 3
"abcdbcdx"
Returns: 2
"shlfrossmluzkrpmdkkiqsilgbskptqelec"
Returns: 16
"abcabcxy"
Returns: 2
"abcdefghzzzzijklmnopxxxxabcdefghyyijklmnop"
Returns: 8
"abcdeabde"
Returns: 1
"qwertzuiopasdfgqwertzuiopmnbvcxylkjhmnbvcxylkjhmnb"
Returns: 25
"abcdefgabcefg"
Returns: 1
"abcdefghijklmnopqrstuvwxyzyxjskdhfhshdfkjakallfhsj"
Returns: 24
"abc"
Returns: 2
"bbadcbcdca"
Returns: 3
"abcddeabcde"
Returns: 1
"abcdbcde"
Returns: 2
"abcdefabcgdef"
Returns: 1
"xyabcdeabcdez"
Returns: 3
"kabcddefpgbhijkeearlmknxopqraqbcdfejfrghijklmnopqr"
Returns: 12
"aaaaabbbbbaaaaabbbbbaaaaabbbbbaaaaabbbbbaaaaabbbbb"
Returns: 10
"bizynypwdgnpchxxrhbbhhkss"
Returns: 13
"abcdefghiklmonoqrstuaajlajdkfalsjdlafllajfldalfla"
Returns: 20
"illtghischallgengesucceedillthischallengesucgceed"
Returns: 3
"aaaaaaaaaaaaaaaaaaaaaaaaazzzzzzzzzzzzzzzzzzzzzzzza"
Returns: 24
"xyabcdefghijklmnopqrstuvwabcdefghijklmnopqrstuvwz"
Returns: 3