我正在研究一个最小堆,它将句子中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);
答案 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);
}