gpt4 book ai didi

java - 使用 radix-26 将名称转换为 key

转载 作者:行者123 更新时间:2023-12-03 02:36:56 26 4
gpt4 key购买 nike

//Convert a name to a key using radix-26:
//Use all of the letters of the alphabet as your digits.
//Assume we only deal with lower-case letters for simplicity.
//Then you can create the radix(base)-26 alphabet number system.
//For example:
// "alice" in radix-26 is 26^4*1 + 26^3*12 + 26^2*9 + 26^1*3 + 26^0*5 = 674055
// "zoe" in radix-26 is 26^2*26 + 26^1*15 + 26^0*5 = 17971
static long nameToKey(String name) {
long key = 0;
/**
* TODO
*/
for (int i = 0;i<name.length();i++)
key+= (name.charAt(i) - 'A' ) * Math.pow(26,name.length() - i - 1 );
return key;


//return 0;
}

alice 的预期输出是 674055,但我的输出是 15406960我不明白我犯了什么逻辑错误。如果有人可以帮助我。

最佳答案

您使用的是小写字母。这个

name.charAt(i) - 'A'

应该是

name.charAt(i) - 'a'

但要获得您指定的结果,您必须添加一个。

key += (name.charAt(i) - 'a' + 1) * Math.pow(26, name.length() - i - 1);

关于java - 使用 radix-26 将名称转换为 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58945955/

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