欢迎光临散文网 会员登陆 & 注册

LeetCode 1754. Largest Merge Of Two Strings

2023-04-16 10:05 作者:您是打尖儿还是住店呢  | 我要投稿

You are given two strings word1 and word2. You want to construct a string merge in the following way: while either word1 or word2 are non-empty, choose one of the following options:

  • If word1 is non-empty, append the first character in word1 to merge and delete it from word1.

    • For example, if word1 = "abc" and merge = "dv", then after choosing this operation, word1 = "bc" and merge = "dva".

  • If word2 is non-empty, append the first character in word2 to merge and delete it from word2.

    • For example, if word2 = "abc" and merge = "", then after choosing this operation, word2 = "bc" and merge = "a".

Return the lexicographically largest merge you can construct.

A string a is lexicographically larger than a string b (of the same length) if in the first position where a and b differ,

 a has a character strictly larger than the corresponding character in b

For example, "abcd" is lexicographically larger than "abcc" 

because the first position they differ is at the fourth character, and d is greater than c.

 

Example 1:

Input: word1 = "cabaa", word2 = "bcaaa"

Output: "cbcabaaaaa"

Explanation: 

One way to get the lexicographically largest merge is: 

- Take from word1: merge = "c", word1 = "abaa", word2 = "bcaaa" 

- Take from word2: merge = "cb", word1 = "abaa", word2 = "caaa" 

- Take from word2: merge = "cbc", word1 = "abaa", word2 = "aaa" 

- Take from word1: merge = "cbca", word1 = "baa", word2 = "aaa" 

- Take from word1: merge = "cbcab", word1 = "aa", word2 = "aaa" 

- Append the remaining 5 a's from word1 and word2 at the end of merge.

Example 2:

Input: word1 = "abcabc", word2 = "abdcaba"

Output: "abdcabcabcaba"

 


Constraints:

  • 1 <= word1.length, word2.length <= 3000

  • word1 and word2 consist only of lowercase English letters.

Accepted

18,107

Submissions

39,373

Seen this question in a real interview before?

Yes

No

Companies

Related Topics

Similar Questions


Hide Hint 1

Build the result character by character. At each step, you choose a character from one of the two strings.

Hide Hint 2

If the next character of the first string is larger than that of the second string, or vice versa, it's optimal to use the larger one.

Hide Hint 3

If both are equal, think of a criteria that lets you decide which string to consume the next character from.

Hide Hint 4

You should choose the next character from the larger string.

Problems

Pick One

基本类似于归并排序,只是第一次没过的时候,卡在了当2个字符相等的时候,

这时候需要去比对2个字符串的大小,先取大的字符串的信息;

Runtime: 40 ms, faster than 83.48% of Java online submissions for Largest Merge Of Two Strings.

Memory Usage: 42.4 MB, less than 99.13% of Java online submissions for Largest Merge Of Two Strings.


LeetCode 1754. Largest Merge Of Two Strings的评论 (共 条)

分享到微博请遵守国家法律