检查字符串的两半在Python中是否至少有一个不同的字符
假设我们有一个小写的字符串;我们必须检查是否可以从中间拆分字符串,这将使两半在两侧之间至少具有一个字符的差异。它可以容纳不同的字符或每个字符的频率不同。如果字符串是奇数长度的字符串,则忽略中间元素并检查其余元素。
因此,如果输入类似于s=“helloohekk”,则输出将为True,如“helloohekk”,因此左侧部分为“hello”,右侧部分为“ohekk”左右是不同的。
为了解决这个问题,我们将遵循以下步骤-
left_freq:=一个空的映射
right_freq:=一个空的映射
n:=s的大小
对于范围在0到(n/2)-1的商的i
left_freq[s[i]]:=left_freq[s[i]]+1
对于i(n/2)到n-1的商
right_freq[s[i]]:=right_freq[s[i]]+1
对于s中的每个字符,执行
返回True
如果right_freq[char]与left_freq[char]不同,则
返回False
让我们看下面的实现以更好地理解-
示例
from collections import defaultdict
def solve(s):
left_freq = defaultdict(int) right_freq = defaultdict(int) n = len(s) for i in range(n//2):
left_freq[s[i]] += 1
for i in range(n//2,n):
right_freq[s[i]] += 1
for char in s:
if right_freq[char] != left_freq[char]:
return True
return False
s = "helloohekk"
print(solve(s))输入值
"helloohekk"输出结果
True
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短