From f0dd110391b8da2e0997ba95476008aa86a0eb43 Mon Sep 17 00:00:00 2001 From: Hao Chen Date: Sat, 22 May 2021 12:40:13 +0800 Subject: [PATCH] New Problem Solution - "1859. Sorting the Sentence" --- README.md | 1 + .../sortingTheSentence/SortingTheSentence.cpp | 65 +++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 algorithms/cpp/sortingTheSentence/SortingTheSentence.cpp diff --git a/README.md b/README.md index 1d057db7..45d54a33 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ LeetCode | # | Title | Solution | Difficulty | |---| ----- | -------- | ---------- | +|1859|[Sorting the Sentence](https://leetcode.com/problems/sorting-the-sentence/) | [C++](./algorithms/cpp/sortingTheSentence/SortingTheSentence.cpp)|Easy| |1857|[Largest Color Value in a Directed Graph](https://leetcode.com/problems/largest-color-value-in-a-directed-graph/) | [C++](./algorithms/cpp/largestColorValueInADirectedGraph/LargestColorValueInADirectedGraph.cpp)|Hard| |1856|[Maximum Subarray Min-Product](https://leetcode.com/problems/maximum-subarray-min-product/) | [C++](./algorithms/cpp/maximumSubarrayMinProduct/MaximumSubarrayMinProduct.cpp)|Medium| |1855|[Maximum Distance Between a Pair of Values](https://leetcode.com/problems/maximum-distance-between-a-pair-of-values/) | [C++](./algorithms/cpp/maximumDistanceBetweenAPairOfValues/MaximumDistanceBetweenAPairOfValues.cpp)|Medium| diff --git a/algorithms/cpp/sortingTheSentence/SortingTheSentence.cpp b/algorithms/cpp/sortingTheSentence/SortingTheSentence.cpp new file mode 100644 index 00000000..244de038 --- /dev/null +++ b/algorithms/cpp/sortingTheSentence/SortingTheSentence.cpp @@ -0,0 +1,65 @@ +// Source : https://leetcode.com/problems/sorting-the-sentence/ +// Author : Hao Chen +// Date : 2021-05-22 + +/***************************************************************************************************** + * + * A sentence is a list of words that are separated by a single space with no leading or trailing + * spaces. Each word consists of lowercase and uppercase English letters. + * + * A sentence can be shuffled by appending the 1-indexed word position to each word then rearranging + * the words in the sentence. + * + * For example, the sentence "This is a sentence" can be shuffled as "sentence4 a3 is2 This1" + * or "is2 sentence4 This1 a3". + * + * Given a shuffled sentence s containing no more than 9 words, reconstruct and return the original + * sentence. + * + * Example 1: + * + * Input: s = "is2 sentence4 This1 a3" + * Output: "This is a sentence" + * Explanation: Sort the words in s to their original positions "This1 is2 a3 sentence4", then remove + * the numbers. + * + * Example 2: + * + * Input: s = "Myself2 Me1 I4 and3" + * Output: "Me Myself and I" + * Explanation: Sort the words in s to their original positions "Me1 Myself2 and3 I4", then remove the + * numbers. + * + * Constraints: + * + * 2 <= s.length <= 200 + * s consists of lowercase and uppercase English letters, spaces, and digits from 1 to 9. + * The number of words in s is between 1 and 9. + * The words in s are separated by a single space. + * s contains no leading or trailing spaces. + ******************************************************************************************************/ + +class Solution { +public: + string sortSentence(string s) { + const int MAX_WORDS = 9; + string ss[MAX_WORDS]; + string word; + for(int i=0; i='0' && ch <='9'){ + ss[ch-'0'-1] = word; + word = ""; + }else if (ch != ' ') { + word += ch; + } + } + + for(int i=1; i < MAX_WORDS; i++){ + if (ss[i].size() <= 0 ) continue; + ss[0] = ss[0] +" " + ss[i]; + } + return ss[0]; + } +};