判断二个字符串是不是"相同字母异序词"

一.前言

 以前都是把笔记记载本子上,但是越来越发现很麻烦,所以最近开了博客,希望能更好的保存学习笔 项目填坑和一些解析心得。 写这个帖子是因为在看书的时候发现一个小问题,“ 判断二个字符串是不是"相同
字母异序词"”,比如“abcd”与“acdb”就是一组相同字母异词序的字符串。

二.代码

 1.减法

def is_different(s1,s2):
	list1=list(s1)
	list2=list(s2)
	if len(list1)!=len(list2):
		print("不是同字母异词序")
	else:
		for x in list1:
			if x in list2:
				list2.remove(x)
		if list2:
			print("不是同字母异词序")
		else:
			print("是同字母异词序")
if __name__=="__main__":
	s1="assbdcff"
	s2="asdsbcff"
	is_different(s1,s2)
主要的思路是先判断字符串长度是否一样,一样的话再把一个字符串里面包含的另一个字符串的字符减掉
,如果最后剩下空列表这表示他们是同字母异词序字符串。 
2.加法
def function(s):
	_list_=list(s)
	alien={}
	for x in _list_:
		if x not in alien.keys():
			alien[x]=1
		else:
			alien[x] +=1
	return alien
def is_different(s1,s2):
	alien_0=function(s1)
	alien_1=function(s2)
	for i in alien_0.keys():
		if i in alien_1.keys():
			if alien_1[i]==alien_0[i]:
				pass
			else:
				print("不是同字母异词序")
				exit()
		else:
			print("不是同字母异词序")
			exit()
	print("是同字母异词序")
if __name__=="__main__":

	s1="assbdcff"
	s2="asdsbcff"
	is_different(s1,s2)
这个的设计思路是把两个字符串放在字典里面,关键字是字符,值是出现的次数,然后来比较两之间的不同。

还有第三种想法的,把两个字符串放在一起,验证每个字母出现的次数,判断是否都是偶数次,还是有为奇数的字母,下次有空再写。



你可能感兴趣的:(学习笔记)