1. 程式人生 > 其它 >LeetCode 5674. 構造字典序最大的合併字串

LeetCode 5674. 構造字典序最大的合併字串

技術標籤:LeetCode

文章目錄

1. 題目

2. 解題

  • 遇到相同的字元,要往後找到能分出大小的位置,若一個已經到達末尾,則選擇另一個
class Solution {
public:
    string largestMerge(string word1, string word2) {
        int n1 = word1.size(), n2 = word2.size(), i = 0, j = 0;
        string ans;
        ans.reserve(n1+n2);
        while(i < n1 ||
j < n2) { if(i < n1 && j < n2 && word1[i] > word2[j]) ans.push_back(word1[i++]); else if(i < n1 && j < n2 && word1[i] < word2[j]) ans.push_back(word2[j++]); else if(i <
n1 && j < n2 && word1[i] == word2[j]) { //相等的情況下,往後找到不相等的 int k1 = i, k2 = j; while(k1 < n1 && k2 < n2 && word1[k1] == word2[k2]) k1++, k2++; if((k1 < n1 && k2 < n2 &&
word1[k1] > word2[k2]) || k2==n2) ans.push_back(word1[i++]); else //if((k1 < n1 && k2 < n2 && word2[k2] > word1[k1]) || k1==n1) ans.push_back(word2[j++]); } else if(i < n1 && j == n2) ans.push_back(word1[i++]); else ans.push_back(word2[j++]); // cout << i << " " << j << endl; } return ans; } };

36 ms 8.8 MB C++


我的CSDN部落格地址 https://michael.blog.csdn.net/

長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
Michael阿明