From d8e8f7492404105f0fd982e475e2028c37364496 Mon Sep 17 00:00:00 2001 From: Hao Chen Date: Sun, 30 May 2021 16:00:45 +0800 Subject: [PATCH] New Problem Solution - "1880. Check if Word Equals Summation of Two Words" --- README.md | 1 + .../CheckIfWordEqualsSummationOfTwoWords.cpp | 71 +++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 algorithms/cpp/checkIfWordEqualsSummationOfTwoWords/CheckIfWordEqualsSummationOfTwoWords.cpp diff --git a/README.md b/README.md index f95149f..ae4b506 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ LeetCode | # | Title | Solution | Difficulty | |---| ----- | -------- | ---------- | +|1880|[Check if Word Equals Summation of Two Words](https://leetcode.com/problems/check-if-word-equals-summation-of-two-words/) | [C++](./algorithms/cpp/checkIfWordEqualsSummationOfTwoWords/CheckIfWordEqualsSummationOfTwoWords.cpp)|Easy| |1871|[Jump Game VII](https://leetcode.com/problems/jump-game-vii/) | [C++](./algorithms/cpp/jumpGame/jumpGame.VII.cpp)|Medium| |1870|[Minimum Speed to Arrive on Time](https://leetcode.com/problems/minimum-speed-to-arrive-on-time/) | [C++](./algorithms/cpp/minimumSpeedToArriveOnTime/MinimumSpeedToArriveOnTime.cpp)|Medium| |1869|[Longer Contiguous Segments of Ones than Zeros](https://leetcode.com/problems/longer-contiguous-segments-of-ones-than-zeros/) | [C++](./algorithms/cpp/longerContiguousSegmentsOfOnesThanZeros/LongerContiguousSegmentsOfOnesThanZeros.cpp)|Easy| diff --git a/algorithms/cpp/checkIfWordEqualsSummationOfTwoWords/CheckIfWordEqualsSummationOfTwoWords.cpp b/algorithms/cpp/checkIfWordEqualsSummationOfTwoWords/CheckIfWordEqualsSummationOfTwoWords.cpp new file mode 100644 index 0000000..3395747 --- /dev/null +++ b/algorithms/cpp/checkIfWordEqualsSummationOfTwoWords/CheckIfWordEqualsSummationOfTwoWords.cpp @@ -0,0 +1,71 @@ +// Source : https://leetcode.com/problems/check-if-word-equals-summation-of-two-words/ +// Author : Hao Chen +// Date : 2021-05-30 + +/***************************************************************************************************** + * + * The letter value of a letter is its position in the alphabet starting from 0 (i.e. 'a' -> 0, 'b' -> + * 1, 'c' -> 2, etc.). + * + * The numerical value of some string of lowercase English letters s is the concatenation of the + * letter values of each letter in s, which is then converted into an integer. + * + * For example, if s = "acb", we concatenate each letter's letter value, resulting in "021". + * After converting it, we get 21. + * + * You are given three strings firstWord, secondWord, and targetWord, each consisting of lowercase + * English letters 'a' through 'j' inclusive. + * + * Return true if the summation of the numerical values of firstWord and secondWord equals the + * numerical value of targetWord, or false otherwise. + * + * Example 1: + * + * Input: firstWord = "acb", secondWord = "cba", targetWord = "cdb" + * Output: true + * Explanation: + * The numerical value of firstWord is "acb" -> "021" -> 21. + * The numerical value of secondWord is "cba" -> "210" -> 210. + * The numerical value of targetWord is "cdb" -> "231" -> 231. + * We return true because 21 + 210 == 231. + * + * Example 2: + * + * Input: firstWord = "aaa", secondWord = "a", targetWord = "aab" + * Output: false + * Explanation: + * The numerical value of firstWord is "aaa" -> "000" -> 0. + * The numerical value of secondWord is "a" -> "0" -> 0. + * The numerical value of targetWord is "aab" -> "001" -> 1. + * We return false because 0 + 0 != 1. + * + * Example 3: + * + * Input: firstWord = "aaa", secondWord = "a", targetWord = "aaaa" + * Output: true + * Explanation: + * The numerical value of firstWord is "aaa" -> "000" -> 0. + * The numerical value of secondWord is "a" -> "0" -> 0. + * The numerical value of targetWord is "aaaa" -> "0000" -> 0. + * We return true because 0 + 0 == 0. + * + * Constraints: + * + * 1 <= firstWord.length, secondWord.length, targetWord.length <= 8 + * firstWord, secondWord, and targetWord consist of lowercase English letters from 'a' to 'j' + * inclusive. + ******************************************************************************************************/ + +class Solution { +public: + int strToInt(string& str) { + int n = 0; + for(auto& c :str) { + n = n*10 + c - 'a'; + } + return n; + } + bool isSumEqual(string firstWord, string secondWord, string targetWord) { + return strToInt(firstWord) + strToInt(secondWord) == strToInt(targetWord); + } +};