Skip to Content
Event Information

SAP Community Coding Challenge #3

[Sep. 18th 2020] Winner Announcement! 🎉

Vote is in! A winner has been chosen for the challenge! Please check out the announcement below!

https://blogs.sap.com/2020/09/18/sap-community-coding-challenge-3-winner/

 

[Sep. 11th 2020] Voting is now LIVE!

To vote on the winner, simply go to this Community question. The finalists are all listed as answers.  Upvote the answer you believe is best.

https://answers.sap.com/questions/13140406/sap-community-coding-challenge-3-finalists.html

 

[Aug. 12th 2020] Deadline Extension Update

Due to the summer vacation season ⛱, we have decided to give everyone some extra time to finish up the challenge! We will now be accepting your solution until September 7th, 2020 23:59:59 Pacific Daylight Time (PDT) / UTC-7

 

[Aug. 7th 2020] Midpoint Challenge Update

If you need help getting started with the challenge, please watch the following video for a deep dive into the concepts surrounding the challenge!

 

[Aug. 3rd 2020] SAP Community Coding Challenge #3

Welcome to the third challenge in the SAP Community Coding Challenge Series. Just like the previous challenges, we have an exciting problem for you to take on to test and show off your coding skills with the SAP Community. 💪

We’ve selected a different language for past Coding Challenges; this time we’re going to let you show off your Java skills. Don’t worry if you are not familiar with the Java language at all, you should still be able to participate and develop a solution. The Java language has a long history in the SAP universe. Like ABAP and JavaScript, Java is available for app development and customization in many SAP systems. Java appears in on-prem frameworks such as SAP Process Integration and SAP Cloud Platform in both the Cloud Application Programming Model (CAP/Java) and Spring Boot.

So, let’s dive into the Challenge!

Challenge – How Many Emojis?

Let’s explore emoji manipulation using Java.

SAP is a member of the Unicode Technical Committee (UTC) who is responsible for developing and maintaining the Unicode Standards which include emojis. In the current Unicode standard list (Emoji 13.0), there are over 3,304 emojis available. One of the interesting quirks of emojis is that not all emojis are the same. For example, do you expect the length of two emojis to be the same or different below?

System.out.println("👩".length());
System.out.println("👩‍💻".length());

The truth is 👩‍💻is actually made up of two emojis: 👩 and 💻. Some emojis are created by joining multiple emojis together using the Zero Width Joiner (ZWJ), a special Unicode character (\u200D) that combines two or more emojis to create a brand new emoji.

In Java, the length of 👩 calculates to 2 and 👩‍💻calculates to 5. The reason why the length of 👩‍💻is equal to 5 instead of 4 is because the length of ZWJ (1) needs to be added to 2 emojis that make up 👩‍💻. In short,

👩‍💻 = 👩 + ZWJ + 💻

 

Now, here comes the challenge. Can you tell me which emojis make up 👨‍👩‍👧‍👦? How about when you combine 👨👧 together with ZWJ, what new emoji does it create?

So, for this challenge, we want you to design two methods. The first should be named removeJoiner. It should accept a string of one emoji as a parameter and returns all individual emojis combined to display a single emoji. The second method you must write should be called addJoiner. It should accept a string of multiple emojis as a parameter and returns the combined emoji. (Before getting started, please read through the submission section for requirements that must be met)

 

Method call Result
removeJoiner(“‍👩‍💻‍”) 👩💻
removeJoiner(“‍👨‍👩‍👧‍👦”) ???

 

Method call Result
addJoiner(“‍👩💻”) 👩‍💻
addJoiner(“‍👨👧”) ???

 

Submission & Judging

Please read carefully to the instructions and submit both the answers and the coding solution that meets the following requirements.

  1. The solution must be written in Java
  2. The solution method signatures must match the description from the challenge above
  3. The solution method produces the correct answer
  4. The solution must be shared in the form of a link to your code
    • Use your choice of any one of these three methods to submit your solution:
      • Repl.it
        • Please read the README.md on how to utilize Repl.it
      • GitHub
        • Please read the README.md on how to utilize GitHub
      • Coffee Corner Discussion
        • Please make sure to prefix your title with CCC3 and to use the code button to properly format your solution so that it’s readable.

Once you have a solution you are happy with, please do the following:

  1. Follow this blog post (use the green “Follow” button at the top left of this page)
  2. Email us at community@sap.com with the following:
    • A link to your solution (Please do not send code in that email; use one of the methods listed above for submission)
    • A link to your public SAP Community profile
    • A subject prefixed with “CCC3”

You have until August 17th, 2020 September 7th, 2020 23:59:59 Pacific Daylight Time (PDT) / UTC-7 to submit your coding solution. The Community and Developer Advocates team at SAP will then do the first round of judging, narrowing down to five finalists based on accuracy, style, best practices, creativity, and more! We will then post these five finalists in a Community Q&A entry so that everyone will have a chance to vote on the best overall solution.

As we have done in the past, the prize for the winner of the Coding Challenge will be a No-Prize. The coveted No-Prize also comes as usual with the unending adulation & admiration of the community of fellow developers.

GLHF: Good luck and have fun! 🎉

5 Comments
You must be Logged on to comment or reply to a post.
  • Dear Anna,

    first of all, thank you very much indeed for your blog and the work about this third SAP Community Code Challenge.

    I would have a simple question: yesterday, I was proposing my solution but didn’t get back the usual receipt-email from SAP Community Global.

    In the previous Coding Challenges, I got it quite soon; is that on its way, or was anything going wrong with my submission?

    Thank you and best regards,

    Flavio