将句子添加到堆中

时间:2016-04-13 20:29:32

标签: java

我正在研究一个最小堆,它将句子中F的数量从最小量的Fs到最大量的Fs进行排序,例如,如果用户进入
FUN
蓬松
法伊夫 1.5五美元多头五美元
FfffFFffuuu!
农民Fred Fiddles for Food 星期五之后担心决赛。害怕朋友。

它会把它分类为:
FUN
法伊夫
蓬松 1.5五美元多头五美元
农民Fred Fiddles for Food 星期五之后担心决赛。害怕朋友。
FfffFFffuuu!
我的问题是,如何将下面的代码结构转换为让用户自己输入句子并将F计数器作为权重,而不仅仅是将它们自己添加到堆中:

    heap.insert("FUN",1);
    heap.insert("Fluffy", 3);
    heap.insert("Fife", 2);
    heap.insert("Five Dollar Foot Long For Five Dollars", 4);
    heap.insert("FfffFFffuuu!", 8);
    heap.insert("Farmer Fred Fiddles for Food", 5);
    heap.insert("After Friday fear the final. Be afraid friend.", 6);

1 个答案:

答案 0 :(得分:1)

您可以使用扫描仪从控制台读取输入,然后使用一种方法计算单词中f的数量。

Scanner s = new Scanner(System.in);

while(true) {
    String sentence = s.next();
    switch(sentence) {
    case "Sort":
        //sort heap
        break;
    default:
        countAndInsert(sentence);
        break;
    }
}

countAndInsert的样子:

public void countAndInsert(String sentence) {
    int fCount = 0;
    for (char c : sentence.toCharArray()) {
        if (c == 'F' || c == 'f') {
            fCount++;
        }
    }

    heap.insert(sentence, fCount);
}