codewars / content-issues

Higher level issue tracker for the Codewars content.
15 stars 1 forks source link

Deduplicate - Find first non-repeated characters in the string #71

Open hobovsky opened 2 years ago

hobovsky commented 2 years ago
  1. All Star Code Challenge #16

    • 7kyu
    • Accepts O(N^2) solutions. Only lowercase letters, non-repeated characters is always found.
    • Satisfaction 92%, ~1000 solutions.
    • No pending issues.
    • 6 languages, no pending translations.
    • Published Dec 2016, author inactive.
  2. The First Non Repeated Character In A String

    • 7kyu
    • Accepts O(N^2) solutions. Only lowercase letters, non-repeated characters are not guaranteed.
    • Satisfaction 87%, ~1500 solutions.
    • No pending issues.
    • 3 languages, no pending translations. Exclusive Java translation.
    • Published Apr 2016, author inactive
  3. First non-repeating character

    • 5kyu
    • Accepts O(n^2) solutions. Upper + lowercase letters with tricky case handling, non-repeated characters are not guaranteed.
    • Satisfaction 89%, ~35k solutions
    • 9 pending issues, mostly regarding insufficient tests.
    • 7 languages, 4 exclusive + 9 pending translations
    • Authored Dec 2013 by OverZealous (active)
hobovsky commented 2 years ago

I have totally no idea what to pick here.

I like 3. because of its requirements on case handling, and large selection of languages. But, OTOH, it's overranked and tests need improvement. I would vote to keep it and retire others if it could be done harder (accept only O(n) solutions), and would have issues fixed, but it would mean a significant effort (unless the author would step in ;) )

If you think that 3. cannot be saved, I have no good candidate to keep. Each of the kata is missing something: edge cases, performance reqs, languages... Maybe retire all and replace with one, more complete version? But then we could just fix the 3. I dont know.

Any ideas?

Siddharth114 commented 2 years ago

which is easier from mod/editor perspective? retiring all and replacing with one complete version, or fix the third one also 3 has an active author so ig that helps?

ejini6969 commented 2 years ago

3 is an advanced version of 1. & 2. in which both of them are duplicate to each other! So, I vote to keep 3.,

Also: I don't like the idea of creating new kata with similar requirements instead of fixing existing ones due to i) author of original kata will feel disgraced as if his / her efforts are down to the drain (since he / she is active) ii) It requires massive work to add all existing languages to that new kata ( + finding people to review them) iii) New kata still needs to get pass beta approvals which might take a long time (might even not exit beta due to issues raised about duplicates with no proof whatsoever too often)

hobovsky commented 2 years ago
  • I also suggest to send it back to beta as well for re-ranking (if that's doable and executable)

Reranking kata with this many solutions is something what kazk once mentioned as "[...] I wouldn't want to start reranking old kata with tens of thousands [of solutions] and more." so I guess it can be difficult, but we can always ask explicitly.

akar-0 commented 2 years ago

3 is outrageously overranked and its varations / constraints are uninteresting and disconnected with its rank. 1 and 2 seem equivalent. I would favour to keep 1 because the greatest number of translation will make the transfer easier.

Blind4Basics commented 2 years ago

about 3 in python: I'm not sure if it's possible to forbid O(n²) solutions that are regex based against a O(n) solution working in plain python.

EloiseRosen commented 2 years ago

maybe we can ask if 3 can be reranked, and if yes we keep 3, and if no we keep 1 or 2?

wtlgo commented 2 years ago

I can't go into deeper details because I don't understand them, but by solving all of them I enjoyed the second one the most. It still makes you take into account edge cases but doesn't throw a random requirement about upper/lowercase in your face. Also, the 3rd one is IMHO overranked, because I was able to solve it with the same one-liner I used to solve 2, by just adding one statement to it.

Kacarott commented 2 years ago

I vote to keep 2. Enforcing O(n) in 3 seems difficult, and even then its an easy 6 at best. So between the other 2 I much prefer 2. This is also a fairly simple kata concept so I think moving/adding translations should not be difficult.