我有一個模式的長度< = 100,和一組單詞< 20我想找到包含模式字符的排列的單詞的數量,例如,如果模式是「貓」,而單詞的集合是「 ttact tract tattc「的輸出應該是兩個。 ttact:相匹配,因爲它包含TAC 道:火柴,因爲它包含的行爲 tattc:劑量無法比擬的比賽如何找到一個單詞是否包含模式字符的排列?
這裏是代碼
public static void main(String[] args) {
String pattern="cat";
char []p=pattern.toCharArray();
Arrays.sort(p);
String sen="ttact tract tattc";
for (char c : p)
System.out.println(c);
String [] words=sen.split(" ");
if (pattern.length()==1)
{
String [] len=sen.split(pattern);
}
else
{
int count=0;
for (String word :words)
{
String found="";
for (int i=0;i<word.length();i++)
{
if (pattern.indexOf(word.charAt(i))!=-1)
{
found+=word.charAt(i);
if (found.length()==pattern.length())
{
char f [] = found.toCharArray();
Arrays.sort(f);
if (Arrays.equals(f, p))
{
count++;
found="";
}
else
found="";
}
}
else
{
found="";
}
}
}
System.out.println(count);
}}}
請在描述中更加精確地描述你想達到的目標。 'tract'這個詞也包含了'cat'的排列,所以它也應該算數。 – Henry 2014-10-18 06:43:30
提供更多示例並闡明您的邏輯。 – anubhava 2014-10-18 06:49:06
是的它是劑量計數,但tattc沒有;因爲它不包含連續排列的貓 – QuakeCore 2014-10-18 06:49:44