我尝试使用ruby程序验证string2,每个字符都存在于string1中。如果存在,则将字符存储在变量中,并继续追加并打印带有最终值的变量。
我的代码是:
string1 = "Print eng formats"
string2 = 'recursive'
for i in 0..string2.length do
for j in 0..string1.length do
if string2[i]==string1[j]
print string2[i]
end
end
end
但我得到了一个输出“rrerrsie”。请帮我解决这个问题。提前谢谢
1条答案
按热度按时间yhxst69z1#
在比较时,您没有打破循环。这个
r
两次包含在字符串中,因此代码输出r
两次。此外,还比较了
string1
一字不差string2
不是很有表现力。字符串越长,此算法的速度就越慢。我建议使用Set
它不存储重复项,并且允许在O(1)
对于这样的问题: