2025-09-09 18:02:15 +09:00

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])
}