adc soluções em python
This commit is contained in:
35
edit-distance/src/saad.py
Normal file
35
edit-distance/src/saad.py
Normal file
@@ -0,0 +1,35 @@
|
||||
class Solver:
|
||||
def __init__(self) -> None:
|
||||
self.s1 = ""
|
||||
self.s2 = ""
|
||||
self.n = 0
|
||||
self.m = 0
|
||||
|
||||
def read_input(self) -> None:
|
||||
(self.n,self.m) = map(int, input().split())
|
||||
(self.s1,self.s2) = input().split()
|
||||
|
||||
def solve(self) -> None:
|
||||
dp: list[list[int]] = [[0] * (self.m + 1) for _ in range(self.n + 1)]
|
||||
for i in range(self.n + 1):
|
||||
dp[i][0] = i
|
||||
for j in range(self.m + 1):
|
||||
dp[0][j] = j
|
||||
for i in range(1, self.n + 1):
|
||||
for j in range(1, self.m + 1):
|
||||
if self.s1[i - 1] == self.s2[j - 1]:
|
||||
dp[i][j] = dp[i - 1][j - 1]
|
||||
else:
|
||||
dp[i][j] = min(dp[i - 1][j] + 1, dp[i]
|
||||
[j - 1] + 1, dp[i - 1][j - 1] + 1)
|
||||
print(dp[self.n][self.m])
|
||||
|
||||
|
||||
def main():
|
||||
solver = Solver()
|
||||
solver.read_input()
|
||||
solver.solve()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user