コード例 #1
0
ファイル: Words.cs プロジェクト: boonyin/Anagrams
        public void FindWords(Words dictionary)
        {
            if (dictionary.LetterCount <= m_letterCount)
            {
                // check the used words
                for (int i = 0; i < dictionary.CountUsed; i++)
                {
                    string baseWord = m_baseWord;
                    string compareWord = dictionary.GetUsedWord(i);
                    bool found = true;
                    while (found && compareWord.Length > 0)
                    {
                        int index = baseWord.IndexOf(compareWord[0]);
                        if (index >= 0)
                        {
                            baseWord = baseWord.Remove(index, 1);
                            compareWord = compareWord.Remove(0, 1);
                        }
                        else
                        {
                            found = false;
                            break;
                        }
                    }
                    if (found)
                    {
                        string word = dictionary.GetWord(i);
                        m_wordList.Add(word);
                    }
                }

                // check the unused words
                for (int i = 0; i < dictionary.Count; i++)
                {
                    string baseWord = m_baseWord;
                    string compareWord = dictionary.GetWord(i);
                    bool found = true;
                    while (found && compareWord.Length > 0)
                    {
                        int index = baseWord.IndexOf(compareWord[0]);
                        if (index >= 0)
                        {
                            baseWord = baseWord.Remove(index, 1);
                            compareWord = compareWord.Remove(0, 1);
                        }
                        else
                        {
                            found = false;
                            break;
                        }
                    }
                    if (found)
                    {
                        string word = dictionary.GetWord(i);
                        m_wordList.Add(word);
                    }
                }

            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: taylorjg/Anagrams
 private static Occurrences SentenceOccurrences(Words words)
 {
     return(WordOccurrences(string.Concat(words)));
 }