complete 5582.py 9251.cpp
This commit is contained in:
48
zeta_cpp/completed/9251.cpp
Normal file
48
zeta_cpp/completed/9251.cpp
Normal file
@@ -0,0 +1,48 @@
|
||||
#include <algorithm>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int lenLCSeq(string s1, string s2) {
|
||||
vector<vector<int>> DP(s1.length(), vector<int>(s2.length(), 0));
|
||||
|
||||
for (int i = 0; i < s1.length(); i++) {
|
||||
for (int j = 0; j < s2.length(); j++) {
|
||||
if (s1[i] == s2[j]) {
|
||||
if (i == 0 && j == 0) {
|
||||
DP[i][j] = 1;
|
||||
} else if (i == 0 && j != 0) {
|
||||
DP[i][j] = 1;
|
||||
} else if (i != 0 && j == 0) {
|
||||
DP[i][j] = 1;
|
||||
} else {
|
||||
DP[i][j] = DP[i - 1][j - 1] + 1;
|
||||
}
|
||||
} else {
|
||||
if (i == 0 && j == 0) {
|
||||
|
||||
} else if (i == 0 && j != 0) {
|
||||
DP[i][j] = DP[i][j - 1];
|
||||
} else if (i != 0 && j == 0) {
|
||||
DP[i][j] = DP[i - 1][j];
|
||||
} else {
|
||||
DP[i][j] = max(DP[i - 1][j], DP[i][j - 1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return DP[s1.length() - 1][s2.length() - 1];
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
string s1, s2;
|
||||
|
||||
cin >> s1 >> s2;
|
||||
|
||||
cout << lenLCSeq(s1, s2) << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
18
zeta_python/completed/5582.py
Normal file
18
zeta_python/completed/5582.py
Normal file
@@ -0,0 +1,18 @@
|
||||
def LCS(s1, s2) -> int:
|
||||
MAXSP = (0, 0, 0)
|
||||
DP = [[0 for _ in range(len(s2))] for _ in range(len(s1))]
|
||||
for i, c1 in enumerate(s1):
|
||||
for j, c2 in enumerate(s2):
|
||||
if c1 == c2:
|
||||
if i >= 1 and j >= 1:
|
||||
DP[i][j] = DP[i - 1][j - 1] + 1
|
||||
else:
|
||||
DP[i][j] = 1
|
||||
if MAXSP[0] < DP[i][j]:
|
||||
MAXSP = (DP[i][j], i, j)
|
||||
return MAXSP[0]
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
s1, s2 = input(), input()
|
||||
print(LCS(s1, s2))
|
||||
Reference in New Issue
Block a user