gpt4 book ai didi

java - 这个算法真的需要两次通过吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:23:10 24 4
gpt4 key购买 nike

假设如果一个句子包含 >= 4 个数字,我想对每个单词执行一个 Action 。例如,

  • 这是一个包含 10、23、30、50、60 的字符串。
  • 这是一个包含10的字符串,同时也包含23。

我需要对上面的第一句话采取特别的行动,因为它包含超过 4 个数字。在我提出的上面的算法中,它需要字符串列表的两次传递。这个任务有更有效的算法吗?例如,只有一次通行证?谢谢。

void process (List<String> sentence) {
boolean has4AboveNum = false;
if(containsMoreThan4Numbers(sentence)) {
has4AboveNum = true;
}

for(String word : sentence) {
if(has4AboveNum) {
doSomething(word);
}
}
}

boolean containsMoreThan4Numbers(List<String> sentence) {
int numCount = 0;
for(String word : sentence) {
if(numCount>4){
return true;
}
if(isNumber(word)) {
numCount++;
}
}
return false;
}

最佳答案

您可以通过解析字符串在一个路径上完成,并在字符串上一次性创建 List<String>仅包含字符串中的数字,列表中的每个元素都是在字符串中找到的不同数字。

现在,您所要做的就是检查 list.size() - 并确保它在所需范围内。

List<String> getNumbers(List<String> sentence) {
List<String> res = new ArrayList<>();
for(String word : sentence) {
if(isNumber(word)) res.add(word);
}
return res;
}

关于java - 这个算法真的需要两次通过吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30174118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com