gpt4 book ai didi

java - 减去 ASCII 值和简单地减去一个整数在算法效率方面有区别吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:45:55 26 4
gpt4 key购买 nike

最近完成了TopCoder算法竞赛单轮比赛618,题目比较简单。给定一个仅由大写字母 A 到 Z 组成的字符串,A = 1,B = 2 等,Z = 26。目标是使用这些值返回字符串的总值。

这是我的算法:

public class WritingWords {
public int write(String word) {
int total = 0;
word = word.replaceAll("\\s+","");

for(int i = 0; i < word.length(); i++){
total += (int)word.charAt(i)-64;
}

return total;
}
}

我获得了 ~165/250 的分数。

这是另一个获得 ~249/250 的用户的代码:

public class WritingWords {
public int write(String word) {
int total = 0;

for(int i = 0; i < word.length(); i++){
total += word.charAt(i)-'A'+1;
}

return total;
}
}

对我来说,这两个源代码看起来非常相似,我不确定为什么我会得到这么低的分数。后一种算法比我的算法效率高得多的原因可能是什么?在我看来,无论如何它们都会在 O(n) 时间内运行。

最佳答案

Given a string consisting only of capital letters from A to Z, A = 1, B = 2, etc. and Z = 26.

鉴于该问题陈述,这一行

word = word.replaceAll("\\s+","");

是无用的,并且毫无意义地遍历整个 String 值。

关于java - 减去 ASCII 值和简单地减去一个整数在算法效率方面有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23297377/

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