Skip to content

Commit 01e68fb

Browse files
add 1048 prod variant
1 parent baf711f commit 01e68fb

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

Diff for: contest/src/main/java/com/github/contest/dp/DpProdVariant.kt

+21
Original file line numberDiff line numberDiff line change
@@ -109,3 +109,24 @@ fun longestCommonSubsequenceProdVariant(text1: String, text2: String): Int {
109109
}
110110

111111
private fun Array<IntArray>.lastElement(): Int = this.last().last()
112+
113+
114+
/**
115+
* 1048. Longest String Chain
116+
* Prod Variant
117+
*/
118+
119+
fun longestStrChainProdVariant(words: Array<String>): Int {
120+
val sortedWords = words.sortedBy { it.length }
121+
val dp = mutableMapOf<String, Int>()
122+
123+
124+
return sortedWords.maxOf { word ->
125+
var currentChain = word.indices.maxOf { index ->
126+
val predecessor = word.removeRange(index, index + 1)
127+
dp.getOrDefault(predecessor, 0) + 1
128+
}
129+
dp[word] = currentChain
130+
currentChain
131+
}
132+
}

0 commit comments

Comments
 (0)