我已经阅读了类似问题的所有答案,但我仍然无法让它为我工作.
这是我为查找和分组句子的字谜而编写的代码:
"scream cars for four scar creams"
Run Code Online (Sandbox Code Playgroud)
预期的产出是:
OUTPUT: ["cars", "scar"]
def anagram_groups
result = []
here = self.gsub(/\W/," ").downcase.split(" ")
here = self.split(" ")
here.each do |y|
#result == here.group_by{|w| w.chars.sort}.values
result == here.select {|x| x.chars.sort == y.chars.sort}
end
result
end
Run Code Online (Sandbox Code Playgroud)
我尝试了两种不同的方法,但它们似乎都不适合我.
问题陈述:给你一组k个字符串,每个长度为n.你必须一起输出一组字谜.Anagrams就像是atm - mat,like-kile.
我的问题是:你如何检查给定的字符串是否是回文的字谜?
我在互联网上找到了Python的一些解决方案,但我不知道如何检查它.我正在考虑将strig转换为a char []
,然后为每个角色获得HashCode,但是我被卡住了.
我做了一个简单的函数,通过排序和比较排序的值来检查两个单词是否是一个字谜,但是即使单词不是anangrams,该程序也总是返回true.如果我删除.ToString(),它将评估为false.知道它为什么这样做以及如何解决这个问题的想法?
public bool anagram(string word1, string word2)
{
char[] word1Arr = word1.ToArray();
char[] word2Arr = word2.ToArray();
Array.Sort(word1Arr);
Array.Sort(word2Arr);
Console.WriteLine(word1Arr);
Console.WriteLine(word2Arr);
if (word1Arr.ToString() == word2Arr.ToString())
{
return true;
}
else
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud) 鉴于字符串......
able\nacre\nbale\nbeyond\nbinary\nboat\nbrainy\ncare\ncat\ncater\ncrate\nlawn\nlist\nrace\nreact\nsheet\nsilt\nslit\ntrace\n
我试图弄清楚如何将字符串中的每个单词分配给一个变量,然后按字母顺序对每个单词进行排序,这样我就可以比较它们,看看哪些是字谜,哪些不是.我有大约一个月的Python经验,如果可以的话,所有的东西都是愚蠢的.
字符串中的回文字符的数量是多少?示例:string ="aaabbbb"; 可能的anagram是回文"abbabba","bbaaabb"和"bababab".这里的问题是时间,我有10 ^ 9的字符串.这是我的最终代码可以有人告诉我它有什么问题吗?
我们能否通过获取字符串中每个字符的ascii值,然后找到所有字符的总和,然后为其他字符串计算出相同的字符,然后比较两个值(总和)来解决七巧板测试难题?
可行吗