详细描述
判断两个字符串的内容是否相同,指的是两个字符串中的字符是否完全一样,顺序可以不同(也可以称之为换位字符串)。比如字符串1为”abc”,字符串2为”cba”,则认为这两个字符串内容是一样的,再比如字符串1为”aba”,字符串2为”abaa”,则认为两个字符串内容不同。因此,两个字符串内容相同包含的意思就是:两个字符串长度相同,并且字符串的字符完全一样(顺序可以不同)。
分析
在算法1中,我们曾经使用了一种定桩的方式来解决找出第一个非重复的字符,有了这个经验之后,这个问题我们首先可以想到用类似的方式来处理,虽然表面上看起来没有直接的关系,算法1是一个字符串,本算法是两个字符串,但是仔细思索之后会发现两者确实是相通的,只要稍微做一些变化,就能解决本问题。
我们用定桩法来进行简单推导一下,假设有两个字符串,字符串1为”abc”,字符串2为”cba”,我们同时对两个字符串的每个字符进行遍历,如果是字符串1中的字符在桩中找到,我们对桩的值进行加1操作,如果是字符串2中的字符在桩中找到,则对桩的值进行减1操作,如果两个字符串的内容完全相同,最后桩的每一个值都应该为0,如果有任何一个值不为0,则说明两个字符串的内容不一样。
代码实现