首页 > 试题广场 >

字符串问题

[编程题]字符串问题
  • 热度指数:1570 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
小摩手里有一个字符串A,小拜的手里有一个字符串B,B的长度大于等于A,所以小摩想把A串变得和B串一样长,这样小拜就愿意和小摩一起玩了。
而且A的长度增加到和B串一样长的时候,对应的每一位相等的越多,小拜就越喜欢。比如"abc"和"abd"对应相等的位数为2,为前两位。
小摩可以在A的开头或者结尾添加任意字符,使得长度和B一样。现在问小摩对A串添加完字符之后,不相等的位数最少有多少位?

输入描述:
第一行 为字符串A,第二行 为字符串B,
A的长度小于等于B的长度,B的长度小于等于100。
字符均为小写字母。


输出描述:
输出一行整数表示A串添加完字符之后,A B 不相等的位数最少有多少位?
示例1

输入

abe
cabc

输出

1
def difference(A, B):  # 比较相同长度的字符串的差异
    result = 0
    length = len(A)
    for i in range(length):
        if A[i] != B[i]:
            result += 1
    return result

A = input()
B = input()
A_length = len(A)
B_length = len(B)
min_diff = A_length
diff = B_length - A_length  # B只需要在头或尾共减少diff个字符即可
for front in range(diff + 1):  # 0~diff
    rear = diff - front  # rear表示尾部减少的字符个数
    temp = difference(A, B[front:B_length-rear+1:])
    if min_diff > temp:
        min_diff = temp
print(min_diff)

发表于 2024-05-03 09:38:37 回复(0)