在 Python 中检查字符串的两半是否具有相同的字符集

pythonserver side programmingprogramming

我们必须在 Python 中检查字符串的两半是否具有相同的字符集。两半中字符的频率必须相同。如果字符串的长度为奇数,则忽略中间并检查其余字符。按照以下步骤为程序编写代码。

算法

1. 初始化一个字符串。
2. 初始化一个空字典变量 alphabets。
3. 用长度 / 2 初始化变量 mid。
4. 编写一个循环直到 mid 元素。
   4.1. 如果未初始化,则用 alphabets[char] 初始化相应的字典项,并将其设置为 1。
   4.2.如果已经初始化,则将计数加 1。
5. 从中间元素到最后一项运行循环。
   5.1. 检查字符是否在字典中。
      5.1.1. 如果字符在字典中,则将其计数减一
6. 循环遍历字典字母表。
   6.1. 如果找到任何值大于 0 的项。
      6.1.1. 打印 **No!**。
   6.2. 否则打印 Yes!

让我们编写代码。

示例

## 初始化字符串
string = "aabccbaa"
## 初始化空字符串
alphabets = {}
## 初始化 mid 变量
mid = len(string) // 2
## 循环计算前半部分字符的频率
for i in range(mid):
   ## 如果字符不在字典中,则将字符计数的值设置为 1
   if not alphabets.get(string[i], 0):
      alphabets[string[i]] = 1
   else:
      ## 如果字符已经初始化,则将字符计数加 1
      alphabets[string[i]] += 1
## 循环检查字符计数是否在字符串的后半部分
for i in range(len(string) - 1, mid - 1, -1):
   ## 检查字符是否在后半部分
   if alphabets.get(string[i], 0):
   ## 如果存在,则将计数减少 1
   alphabets[string[i]] -= 1
## 初始化轨道的标志变量
flag = 1
## 循环检查减少后的值
for i in alphabets.values():
## 检查是否为零
if i != 0:
   ## 如果不是零,则中断循环并打印 No!
   print("No!")
   ## 将轨道设置为 0
   flag = 0
   break
## 如果 flag 值仍为 1,则为 Yes!
if flag == 1:
   ## 打印 Yes!
   print("Yes!")

输出

如果您运行上述程序,您将获得以下输出。

Yes!

结论

如果您对本教程有任何疑问,请在评论部分中提及。


相关文章