21 lines
602 B
Swift
21 lines
602 B
Swift
if let s1 = readLine(), let s2 = readLine() {
|
|
let arr1: [Character] = Array(s1)
|
|
let arr2: [Character] = Array(s2)
|
|
let l1: Int = arr1.count
|
|
let l2: Int = arr2.count
|
|
var dp: [[Int]] = Array(repeating: Array(repeating:0, count: l2+1), count : l1+1)
|
|
|
|
for i in 1...l1 {
|
|
let c1: Character = arr1[i-1]
|
|
for j in 1...l2 {
|
|
let c2: Character = arr2[j-1]
|
|
if c1==c2 {
|
|
dp[i][j] = dp[i-1][j-1]+1
|
|
}
|
|
else {
|
|
dp[i][j] = max(dp[i-1][j], dp[i][j-1])
|
|
}
|
|
}
|
|
}
|
|
print(dp[l1][l2])
|
|
} |