Problem Statement
You are given
You wish to delete some characters from the string, such that the characters that remain are all in non-decreasing order.
Return the length of the longest possible string that remains.
Definition
- Class:
- OrderlyString
- Method:
- longestLength
- Parameters:
- String
- Returns:
- int
- Method signature:
- int longestLength(String s)
- (be sure your method is public)
Constraints
- s will contain between 1 and 200 characters, inclusive.
- Each character of s will be in the range 'A'-'Z'.
Examples
"ABCDEFG"
Returns: 7
We don't actually need to remove any characters.
"GFEDCBA"
Returns: 1
The characters initially are all in the wrong order, best we can do is leave only one.
"ACBB"
Returns: 3
ABB is the longest.
"AAAAAAA"
Returns: 7
"BBACDEF"
Returns: 6
"ZAZBZCZ"
Returns: 4
"CCCFKQJKKCVVYMEBLUKPMHQIYXLQBRQTTVQOGHQSUNBMULKTOLXSGKVWCQBECFMYKKSACPNSNTGKXHZOLSYPJSTMPUEKEPWIKEREBO"
Returns: 23
"IWVTSRASKSEGPLJZPCSELXZYJNAJUQLTWAJJLZWCJRGTJAQITXRKRYNQZETPJZVRFBSCERZCJXOENBMLRWPDNXSPIWPAIBUHHSRHUWCQQYOIYCNUMJQTFWTPSYIQAPGFDFGQIZUGKZ"
Returns: 25
"ISIWTKGHNGTOQVTPJUHTRLQFSVXAYGGVQSGLLJGDXWQBBTHDMBROQTPLCAGPLCNCFCVEIKPIAKAYUMJZDUDEJIKHJIFUBLXOAZYAKICVDYNQHWMLYTTHQOEXKIGKQNSKBERDGHYDHQLCXSZPRZWGKGHUBRHWBLFKPUXIEVKUPRSAEQZYKGGFGCWEGJCNMFYCVOK"
Returns: 26
"GWLTPGUTGLVRLTNWNSCGMRJQVGAKDZASJVHAAYCPCKXYAWVCHKGTTFJZRPIHEQ"
Returns: 13
"QTWDHBWZAJJCJJMFJMXJLXGIBSWUKZQEUEOAEMBHX"
Returns: 13
"UDFKPTWIHNQGCVOCUTIQSPMRPXXRYGGOVVNFMBRMLDZDSFWYOSZQLKCSYFKRJQWKHDPIFREUKIJ"
Returns: 13
"LXWIUCVWWGNRNOUOOKHTLFGQPLYEQLEZOHIYKODHNONNOJYYGCHSUOLPHTTNBXRBVDRAIPMVRGPUHNOPPLBJBDCJEXQPXKFYYAETMPVSWPHW"
Returns: 22
"HAK"
Returns: 2
"POKORRLPSCECPAVAHLLVLMHVVJFPIUABOOZFVLEVQRLGVOQULIOSLHYEUGSGSEKZZBKWPPCRPRQXDIEIRLBPVLNESWVBSYSQZEASSDAUCMPBGRGWDPIJVVKRDUAAVVXHUZDATUXVFRROHFAXGNMNAXDQGRCDWLSTJTXIDDQOFHAYUVNYW"
Returns: 33
"DJBLSBHHXOMPTFCGLRBEIGPYOXSNKULZTSDITZAMZXSEVJSUBZHPNHTQTCUITHSVIYXDCLRCFXJWHXLGYKULNIRIYXGJNYVMSFEHPISUZQTQMTWQSYJVRFOMDLCEXFYDGPNWCLELPTKLCXYRZZZPOJKWIYHRDNXMWWSUHGDRAHYJDMTMOGFSXSNTOVLZOA"
Returns: 28
"DXGDXDXGDXGPDXGPZDXGPZCDYNFFEHTLTZKGKPFNIVDXGPZCDYNDXGPZCDYNFFEHTLTZKGKPFNIVHIQRVEBLJFUQKMFRCURVHZMJKBRMTFIQPLLENEHFAGODTQFBFOOFHUYSXPBJRLGXYUBPIJQLXAXTOSWUKVUWZNAYZTGHKFWSWXNHVUWZNAYZTGHKFWSWXNHNHXNH"
Returns: 39
"WGHVGPRVPBVYCGRSXZENXEVKVCKPPCCSZPVMYDPWZJKHTUSTXLEKDUBFLSXQHIXABZMIBMGRGLAYWUBGOUSYCYIBJZRAQWBKZALNNVGQJKHLTPHQZUFTWLOJEGNTWUSKPYYIVJYPEWPFKOMKCNWNLIXORKVHRFZGPUSLXCUHZYXMCXXZJZORBGZKVHWAPTZUJITRRNWI"
Returns: 34
"ABCA"
Returns: 3
"XYZDEFABC"
Returns: 3
"ZAAA"
Returns: 3
"ACDAAAA"
Returns: 5
"NSEI"
Returns: 2
"ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQR"
Returns: 32
"BSAQXWPQCACEHCHZVFRK"
Returns: 7
"ACCCCBB"
Returns: 5
"AAAAABBBBBA"
Returns: 10
"AZYXWVUTS"
Returns: 2
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
Returns: 200
"AZBCDEF"
Returns: 6