检查是否可以在Python中使用给定的约束将一个字符串转换为另一个字符串
假设我们有两个字符串s和t,其中只有三个字符“A”,“B”和“#”。我们必须检查是否可以通过对s执行这些操作来将s转换为t。
“A”只能移到左侧
“B”只能移到右侧
'A'和'B'都不能互相交叉
因此,如果输入类似于s=“##AB##B”t=“A###B#B”,则输出将为True,因为sA可以轻松移至最左侧,中间B可以向右移动一步
示例
让我们看下面的实现以更好地理解-
def solve(s, t):
s = list(s)
t = list(t)
if len(s) != len(t):
return False
if s.count('A') != t.count('A') or s.count('B') != t.count('B'):
return False
for i in range(len(s)):
if s[i] != '#':
for j in range(len(t)):
if (t[j] != s[i]) and t[j] != '#':
return False
if t[j] == s[i]:
t[j] = '#'
if s[i] == 'A' and i < j:
return False
if s[i] == 'B' and i > j:
return False
break
return True
s = "##AB##B"
t = "A###B#B"
print (solve(s, t))输入值
"##AB##B", "A###B#B"输出结果
True
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短