在 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!
结论
如果您对本教程有任何疑问,请在评论部分中提及。