Ah the things you could do with regex. :)
If you sort your string first then algorithm will work correctly.
In my understanding, this kata doesn't put any restriction on the input strings. So, 'abc' and 'c' are both valid strings. And what I want to comment is the RegEx solution can't cover special cases.
Edit: Oh, now I understand that this RegEx solution is for the old version of this kata, and it was correct. Now the kata has changed, and it's no longer accurate. Anyway, I think we can update the test cases, but the kata's original description should not be changed. Otherwise, the solutions won't be consistent.
Correct, it'll fail.
The author should have added that to the list of test-cases earlier (perhaps to intentionally escape weird inputs).
It's not hard to either use endsWith (if available) or implement a trivial linear (O(n)) solution that scans each character from the end of the string.
The latter could be then optimized by splitting the ending into two halves and checking first and last characters for each half (that way it'll give negative response faster than a linear solution).
Just for your information, 'abc' and 'c' are both incorrect string literals since they should end with an additional apostrophe.
This solution is not correct for special cases such as:
wow,you can really coding.
This comment is hidden because it contains spoiler information about the solution
I agree, the default/return should be set as string "invalid value".
I agree with chandlerroth, this is a brilliant and concise solution but readability / reusability is terrible.
I want to be like you when I grow up
I keep debating with myself whether the use of the spread operator on strings is better practice than using split(''). What's your opinion?