检查是否可以在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 送给学长毕业祝福语简短