Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

SAP Community Coding Challenge - March 2020

thomas_jung
Developer Advocate
Developer Advocate
8,302

This is the voting thread for the March 2020 SAP Community Coding Challenge. For the challenge details and directions see this blog:

https://blogs.sap.com/2020/02/28/sap-community-coding-challenge-series/

In this Question thread I will post the 7 finalist. Use the answer voting mechanism to choose the one solution you believe should be the overall winner. Remember: this is all for fun and education. We are all winners here because of the great knowledge sharing!

53 REPLIES 53

thomas_jung
Developer Advocate
Developer Advocate
1,097

We also have the replay of the live stream where we announced the finalist available: https://youtu.be/4riDYGR_t_o

Peter_Inotai
Active Contributor
0 Kudos
1,097

I was really looking forward to see the final solutions. I really love the "SELECT DISTINCT" and the "Sorted Table Discarding Duplicates" Approach.

Congratulation for all the finalist and special award winners.

Sandra_Rossi
Active Contributor
1,097

Who will check that nobody does a vote +1 for their favorite and -1 for others? 😉

EnnoWulff
Active Contributor
1,097

How many solutions did you get overall?

thomas_jung
Developer Advocate
Developer Advocate
1,097

enno.wulff - a little shy of 200 entries.

maheshpalavalli
Active Contributor
0 Kudos
1,097

Wow, Those are some cool solutions there!!,,

200!! How many people were involved in the shortlisting those 😉 😄

thomas_jung
Developer Advocate
Developer Advocate
1,097

rich.heilman and I did the shortlisting and judging so far. Now its up to the community to choose the overall winner.

FredericGirod
Active Contributor
1,097

I though the objective was to produce clean code

BrianVanderwiel
Participant
1,097

Congrats to all the finalists! And thanks to the SAP Community team as this was a well thought out and well run challenge.

The challenge said "as few lines of code as possible" but did not say "do not include comments". I'm assuming all the comments were removed for the finalists for clarity of presentation/voting?

I'm seeing a ton of cool new syntax introduced and used (mostly for the better). However, from a support perspective, it can be disruptive and confusing without good comments as there are vast knowledge differences within any group of developers...

k_gorin
Participant
0 Kudos
1,097

Very nice challenge. I'm following this one among my fellow Russian community programmers as their brains hurt 😄 Could you please create a one place repository with all the code on git. Thanks!

thomas_jung
Developer Advocate
Developer Advocate
1,097

And if you want more details on the Special Award winners, rich.heilman posted a blog about them here: https://blogs.sap.com/2020/03/17/sap-community-coding-challenge-series-march-2020-special-awards/

Domi
Active Contributor
1,097

I'll try to provide an AbapGit repo with my local revisions - and the story behind my solution...

Föß
SAP Champion
SAP Champion
1,097

I thought we should just vote for one solution. Seems, that some of us have voted down all other solutions. This is not very nice.

Remember: This is all for fun and education.

Sandra_Rossi
Active Contributor
1,097

Remark about the regular expressions used by 3 of the 5 finalists, they could be written as follows to be more readable and maintainable (example below corresponds to DATA(unique_chars_in_word) = replace( val = word->* regex = `(.)(?=.*\1)` with = `` occ = 0)):

DATA(unique_chars_in_word) = replace( val = word->* 
    regex =   '(.)'    " any character (.) registered for later reuse ((something))
            & '(?='    " provided that it's followed by
            & '.*'     "   - any character (.) repeated zero or more times (*)
            & '\1)'    "   - the character registered first (\1)
    with = ``  " replace the match with nothing (delete)
    occ = 0 ). " replace ALL occurrences

Another solution is to get the free online explanation by https://regex101.com/r/7RznVy/3: