adc soluções em python

This commit is contained in:
2026-05-15 15:43:42 -03:00
parent 32713bd845
commit 7e9caaea6e
5 changed files with 249 additions and 0 deletions

35
edit-distance/src/saad.py Normal file
View 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()