gpt4 book ai didi

java - char 是如何工作的,它与英文字母有什么关系?

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

我有一个任务如下:

Write a method that takes an array of consecutive (increasing) letters as input and that returns the missing letter in the array.

You will always get a valid array. And it will always be exactly one letter missing. The length of the array will always be at least 2.

The array will always contain letters in only one case.

Example:

['a','b','c','d','f'] -> 'e'
['O','Q','R','S'] -> 'P'

我的解决方案非常糟糕:

public static char findMissingLetter(char[] array) {
char[] alphabet = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};

int offset = 0;
int point = 0;
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < alphabet.length; j++) {
if (alphabet[j] == array[i]) {
offset = j;
point = offset + 1;
if (alphabet[point] != array[++i]) {
System.out.println(alphabet[point]);
return alphabet[point];
}
}
}
}
return ' ';
}

现在我找到了一个非常简短的解决方案,但我不明白代码,或者至少我不明白如果不给代码可能的字母列表,它如何能够知道缺少哪个字母:

public static char findMissingLetter(char[] array){
char expectedLetter = array[0];
for(char letter : array){
if(letter != expectedLetter) break;
expectedLetter++;
}
return expectedLetter;
}

谁能解释一下 char 是如何工作的,以及为什么即使我没有提供所有字母的数组,它也知道“e”丢失了?

最佳答案

您提供的解决方案非常简单。您应该熟悉 char 值可解释为整数值,它是 ASCII 表中特定字符的数值。

因此,在获取 expectedLetter 的初始值(即 char 数组中的第一个值)后的解决方案中,它检查字符的数值。如果它们相同,则表示它们是相同的字符,正如您被告知的那样,这些字符是按连续顺序排列的,并且只有一个字母大小写。因此,它会增加 expectedLetter 的数值(这是 ASCII 表中的下一个字符,或者您可以按字母顺序说出下一个字符),并再次检查该值直到数组末尾。

关于java - char 是如何工作的,它与英文字母有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54578287/

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