リンクリストへの文字列内のすべての単語の追加とカウント

ジェラルド

まず、OOPに頭を悩ませていないと言うことから始めます。

文字列内の各単語を反復処理し、リンクリストに含まれているかどうかを確認し、含まれていない場合はノードとして追加するか、リストに含まれている場合は既存のノードの数を増やすルーチンが必要です。

これが私が持っているものです:

private void CountWords(string cleanString)
        {
            WordNode nextNode, prevNode;
            WordNode addNode;
            foreach (string stringWord in cleanString.Split(' '))
            {
                if (head == null)
                {
                    // No items in list, add to the beginning
                    addNode = new WordNode(stringWord);
                    head = addNode;
                }
                else
                {
                    if (String.Compare(stringWord, head.Word) < 0)
                    {
                        // If stringWord belongs at the beginning of the list, put it there
                        addNode = new WordNode(stringWord);
                        addNode.NextWord = head;
                        head = addNode;
                    }
                    else if (String.Compare(stringWord, head.Word) == 0)
                    {
                        // If stringWord is equal to head.Word, increase count
                        addNode.Count += 1;
                    }
                    else
                    {
                        prevNode = head;
                        nextNode = head.NextWord;
                        // If it doesn't belong at the beginning, cycle through the list until you find where it does belong
                        while ((nextNode != null) && (String.Compare(nextNode.Word, addNode.Word) < 0))
                        {
                            prevNode = nextNode;
                            nextNode = nextNode.NextWord;
                        }
                        if (nextNode == null)
                        {
                            prevNode.NextWord = addNode;
                        }
                        else
                        {
                            prevNode.NextWord = addNode;
                            addNode.NextWord = nextNode;
                        }
                    }

                }
            }
        }

これの前に、私はaddNode = new WordNode(stringWord);を試みていました「文字列内の各単語」ループの各反復の開始時に、クラスが再定義され、カウントが1にリセットされます。現在、addNode.Count + = 1であるため、カウントを増やすことはできませんは未定義です。stringWordがリンクリストに含まれているかどうかを確認し、含まれている場合はstringWord.countを1つインクリメントできることを期待していましたが、エラーが発生します。

これを今見て、私はaddNode.Count + = 1;を考えています。その数行下のwhileループに属しています...

これが私のWordNodeクラスです:

class WordNode
    {
        // constants

        // variables
        private string data;            // this is our only data, so also key
        private int count;
        private WordNode next;          // this is reference to next Node

        // constructors
        public WordNode(string newValue)
        {
            Word = newValue;
            count = 1;
            NextWord = null;
        }

        // methods
        public string Word
        {
            get
            {
                return data;
            }
            set
            {
                data = value;
            }
        }

        public int Count
        {
            get
            {
                return count;
            }
            set
            {
                count = value;
            }
        }

        public WordNode NextWord
        {
            get
            {
                return next;
            }
            set
            {
                next = value;
            }
        }
    }
謎めき

これを試して:

private void CountWords(string cleanString)
{
    foreach (string stringWord in cleanString.Split(' '))
    {
        if (head == null)
        {
            head = new WordNode(stringWord);
        }
        else
        {
            var last = (WordNode)null;
            var current = head;
            do
            {
                if (current.Word == stringWord)
                {
                    break;
                }
                last = current;
                current = current.NextWord;
            } while (current != null);
            if (current != null)
            {
                current.Count++;
            }
            else
            {
                last.NextWord = new WordNode(stringWord);
            }
        }
    }
}

そして、代替手段はlinqを使用することです。

var query =
    cleanString
        .Split(' ')
        .ToLookup(x => x)
        .Select(x => new
        {
            Word = x.Key,
            Count = x.Count(),
        });

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Python-リスト文字列内の単語数をカウントします

分類Dev

Rのカテゴリに従って、文字列内の単語の出現をカウントします

分類Dev

文字列のリストで単語の出現をカウントします

分類Dev

?を追加します およびすべてのアウトバウンドリンクへの別の文字列

分類Dev

文字列に表示される1つのリスト内の単語数をカウントします

分類Dev

Pythonを使用して文字列内の単語のすべての出現をカウントする方法

分類Dev

Tableauのエントリとして文字列のリストを含む文字列ディメンション内の単語の出現をカウントする方法

分類Dev

Rを使用して、列内の単語リストの出現を効率的にカウントします。

分類Dev

リストのリスト内のすべての要素のHaskellカウント

分類Dev

フレーズ内のすべての大文字の単語を行ごとのリストに追加する新しい列に追加する

分類Dev

フォーカスの視覚的表示とすべてのTextBoxへのクリックイベントの追加

分類Dev

単語のカウント周波数 - リンクリスト

分類Dev

リスト内の各2単語の文字列を分割し、同じかどうかを比較して、Linqを使用してカウントします

分類Dev

文字としてのリスト内の単語のリスト

分類Dev

単語のリストをトラバースして各単語を検索し、単語内の特定の部分文字列の出現をカウントするにはどうすればよいですか?

分類Dev

pandasDataFrameへの単語内の文字の出現をカウントします

分類Dev

Pythonは(文字列)リストアイテム内の特定の単語を検索してカウントします

分類Dev

Python-リスト内の単語の出現をカウントします

分類Dev

式内のRuby文字列内の単語にテキストスタイリングを追加する

分類Dev

文字列と文字列リストを使用し、文字列のアナグラムであるリスト内のすべての単語を返す関数

分類Dev

文字列のリストを調べて、文字列の最後にカウントを追加しようとしています

分類Dev

R-単語のリストから文字列内の完全一致をカウントし、単語ごとのスコアを使用して全体的な感情を計算します

分類Dev

パンダの文字列内の単語の出現をカウントする

分類Dev

単語リスト内の文字のカウントマトリックスアルゴリズムを最適化する

分類Dev

JavaScript:文字列内の単語を分割してカウントする

分類Dev

着信文字ストリーム内の単語の出現をカウントします

分類Dev

文字列のリストのすべての要素で特定の文字の出現をカウントします

分類Dev

他の列の既存の単語に基づいて、文字列内の単語の出現回数を行ごとにカウントします

分類Dev

文字のベクトル内の単語の出現をカウントする

Related 関連記事

  1. 1

    Python-リスト文字列内の単語数をカウントします

  2. 2

    Rのカテゴリに従って、文字列内の単語の出現をカウントします

  3. 3

    文字列のリストで単語の出現をカウントします

  4. 4

    ?を追加します およびすべてのアウトバウンドリンクへの別の文字列

  5. 5

    文字列に表示される1つのリスト内の単語数をカウントします

  6. 6

    Pythonを使用して文字列内の単語のすべての出現をカウントする方法

  7. 7

    Tableauのエントリとして文字列のリストを含む文字列ディメンション内の単語の出現をカウントする方法

  8. 8

    Rを使用して、列内の単語リストの出現を効率的にカウントします。

  9. 9

    リストのリスト内のすべての要素のHaskellカウント

  10. 10

    フレーズ内のすべての大文字の単語を行ごとのリストに追加する新しい列に追加する

  11. 11

    フォーカスの視覚的表示とすべてのTextBoxへのクリックイベントの追加

  12. 12

    単語のカウント周波数 - リンクリスト

  13. 13

    リスト内の各2単語の文字列を分割し、同じかどうかを比較して、Linqを使用してカウントします

  14. 14

    文字としてのリスト内の単語のリスト

  15. 15

    単語のリストをトラバースして各単語を検索し、単語内の特定の部分文字列の出現をカウントするにはどうすればよいですか?

  16. 16

    pandasDataFrameへの単語内の文字の出現をカウントします

  17. 17

    Pythonは(文字列)リストアイテム内の特定の単語を検索してカウントします

  18. 18

    Python-リスト内の単語の出現をカウントします

  19. 19

    式内のRuby文字列内の単語にテキストスタイリングを追加する

  20. 20

    文字列と文字列リストを使用し、文字列のアナグラムであるリスト内のすべての単語を返す関数

  21. 21

    文字列のリストを調べて、文字列の最後にカウントを追加しようとしています

  22. 22

    R-単語のリストから文字列内の完全一致をカウントし、単語ごとのスコアを使用して全体的な感情を計算します

  23. 23

    パンダの文字列内の単語の出現をカウントする

  24. 24

    単語リスト内の文字のカウントマトリックスアルゴリズムを最適化する

  25. 25

    JavaScript:文字列内の単語を分割してカウントする

  26. 26

    着信文字ストリーム内の単語の出現をカウントします

  27. 27

    文字列のリストのすべての要素で特定の文字の出現をカウントします

  28. 28

    他の列の既存の単語に基づいて、文字列内の単語の出現回数を行ごとにカウントします

  29. 29

    文字のベクトル内の単語の出現をカウントする

ホットタグ

アーカイブ