给定两个字符串, 请按字典顺序打印所有常见字符。如果没有常用字母, 请打印-1。所有字母均为小写。
例子:
Input :
string1 : geeks
string2 : forgeeks
Output : eegks
Explanation: The letters that are common between
the two strings are e(2 times), k(1 time) and
s(1 time).
Hence the lexicographical output is "eegks"Input :
string1 : hhhhhello
string2 : gfghhmh
Output : hhh
这个问题已有解决方法, 请参考按字母顺序打印两个字符串的公共字符链接。我们将使用python解决此问题路口财产和collections.Counter()模块。方法很简单,
- 使用以下命令将两个字符串转换为字典数据类型计数器(str)方法, 其中包含字符串字符作为键, 并包含其频率作为值。
- 现在使用查找两个字符串之间的共同元素交集(a&b)属性。
- 结果也将是一个计数器字典, 该字典将公用元素用作键, 并将公用频率作为值。
- 采用elements()计数器字典的方法是按其频率次数扩展键列表。
- 对列表进行排序, 并连接输出列表的每个字符而无需空格以打印结果字符串。
# Function to print common characters of two Strings
# in alphabetical order
from collections import Counterdef common(str1, str2):# convert both strings into counter dictionary
dict1 = Counter(str1)
dict2 = Counter(str2)# take intersection of these dictionaries
commonDict = dict1 &
dict2if len (commonDict) = = 0 :
print - 1
return# get a list of common elements
commonChars = list (commonDict.elements())# sort list in ascending order to print resultant
# string on alphabetical order
commonChars = sorted (commonChars)# join characters without space to produce
# resultant string
print ''.join(commonChars)# Driver program
if __name__ = = "__main__" :
str1 = 'geeks'
str2 = 'forgeeks'
common(str1, str2)
输出如下:
eegks
【Python代码按字母顺序打印两个字符串的公共字符】首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。
推荐阅读
- Python闭包用法介紹
- 在Python中使用PyQt设计GUI应用程序
- 爬虫|Python文章合集 | (入门到实战、游戏、Turtle、案例等)
- 程序员合集|Pygame实战(据说—这是一款还原度超高的植物大战僵尸游戏,你感受下......)
- #yyds干货盘点#快速搭建k8s集群
- #yyds干货盘点# Kubernetes 集群权限管理那些事儿(17)
- 一文了解如何源码编译Rainbond基础组件
- VMWare Workstation不支持嵌套化了吗?
- VMware中安装Centos7系统