题目描述
疯狂的科学家,这道题主要是判断两个字符串不相同的部分有多少。
假设:
A: FFF
B: GFG
我想了一下,有两种改变的方式:
一种是把分散的 G 都变成 F,需要两次;另一种是全部转换,转换为 FGF,然后在把 G 变成 F,还是两次。
所以说无论怎么变都是同样的次数,只要数出不同段的个数就行了。
Python 代码
n = eval(input())
a = list(input())
b = list(input())
r = 0
count_diff = 0
# 使用zip方法可以将a,b列表中相同下标的元素进行对比
for i,j in zip(a,b):
# 如果不相等,用 r 来标注,在else中会处理不相等的情况
if i != j:
r = 1
else:
if r != 0:
count_diff += 1
r = 0
# 如果末尾元素不相等,else 无法处理,所以需要再加一次判断
if r != 0:
count_diff += 1
print(count_diff)
Golang 代码
package main
import "fmt"
func main() {
var n int
fmt.Scanf("%d",&n)
var a,b string
fmt.Scanf("%s\n%s",&a,&b)
flag := 0
count_diff := 0
for i:=0;i<len(a);i++{
if a[i]!=b[i]{
flag = 1
}else{
if flag == 1{
count_diff ++
}
flag = 0
}
}
if flag == 1{
count_diff ++
}
fmt.Println(count_diff)
}