如何使用递归检查两个字符串是否可以相等?

时间:2016-01-16 17:10:09

标签: string algorithm recursion

我正在尝试递归,但此刻我并不太了解它......

我想写一个递归的布尔函数,它接受2个字符串作为参数,如果第二个字符串可以通过用某个特殊字符替换某些字母来使第二个字符串等于第一个字符串,则返回true。

我会证明我的意思:

让s1 =“你好”,s2 =“h%lo”,其中'%'是特殊字符。

该函数将返回 true ,因为'%'可以替换“el”,导致两个字符串相等。

另一个例子:

设s1 =“你好”,s2 =“h%l”。

该函数将返回 false ,因为第二个字符串中缺少“o”,并且没有可以替换“o”的特殊字符(h%l%将返回)。

现在问题不在于编写代码,而是了解如何一般地解决问题,我甚至不知道从哪里开始。

如果有人可以指导我朝着正确的方向前进,我会非常感激,即使只是使用英文单词,我也会尝试将其翻译成代码(Java)......

谢谢。

1 个答案:

答案 0 :(得分:0)

所以这在Python中相对容易。我选择的方法是将第一个字符串(“hello”)放入一个数组中,然后迭代第二个字符串(“h%lo”),将元素与数组中的元素进行比较。如果元素在数组中,即'h','l','o',那么我将从数组中弹出它。结果数组是['e','l']。可以找到特殊字符,因为它是初始数组中不存在的元素。

然后可以在字符串中将特殊字符替换为连接数组“el”,并与第一个字符串进行比较。

在第一种情况下,这将给出“hello”==“hello” - >真正 在第二种情况下,这将给出“hello”==“helol” - >假

我希望这有帮助并且有意义。