Class Solution
- java.lang.Object
-
- g2701_2800.s2746_decremental_string_concatenation.Solution
-
public class Solution extends Object
2746 - Decremental String Concatenation.Medium
You are given a 0-indexed array
words
containingn
strings.Let’s define a join operation
join(x, y)
between two stringsx
andy
as concatenating them intoxy
. However, if the last character ofx
is equal to the first character ofy
, one of them is deleted.For example
join("ab", "ba") = "aba"
andjoin("ab", "cde") = "abcde"
.You are to perform
n - 1
join operations. Letstr0 = words[0]
. Starting fromi = 1
up toi = n - 1
, for theith
operation, you can do one of the following:- Make
stri = join(stri - 1, words[i])
- Make
stri = join(words[i], stri - 1)
Your task is to minimize the length of
strn - 1
.Return an integer denoting the minimum possible length of
strn - 1
.Example 1:
Input: words = [“aa”,“ab”,“bc”]
Output: 4
Explanation: In this example, we can perform join operations in the following order to minimize the length of str2:
str0 = “aa”
str1 = join(str0, “ab”) = “aab”
str2 = join(str1, “bc”) = “aabc”
It can be shown that the minimum possible length of str2 is 4.
Example 2:
Input: words = [“ab”,“b”]
Output: 2
Explanation: In this example, str0 = “ab”, there are two ways to get str1: join(str0, “b”) = “ab” or join(“b”, str0) = “bab”. The first string, “ab”, has the minimum length. Hence, the answer is 2.
Example 3:
Input: words = [“aaa”,“c”,“aba”]
Output: 6
Explanation: In this example, we can perform join operations in the following order to minimize the length of str2:
str0 = “aaa”
str1 = join(str0, “c”) = “aaac”
str2 = join(“aba”, str1) = “abaaac”
It can be shown that the minimum possible length of str2 is 6.
Constraints:
1 <= words.length <= 1000
1 <= words[i].length <= 50
- Each character in
words[i]
is an English lowercase letter
- Make
-
-
Constructor Summary
Constructors Constructor Description Solution()
-
-
-
Method Detail
-
minimizeConcatenatedLength
public int minimizeConcatenatedLength(String[] words)
-
-