我该如何处理这些CodingBat问题?

时间:2014-11-16 05:22:45

标签: java

我如何在CodingBat中解决这些问题?

1.给你一封来信时,你会收到10个地方的信件。

tenLettersAway('A') → K
tenLettersAway('B') → L
tenLettersAway('C') → M

2.当给出一个字符串字时,将每个字母改为10个字母以外的字母。

wordEncoder("HELLO") → "ROVVY"
wordEncoder("WORLD") → "GYBVN"
wordEncoder("MARY") → "WKBI"

3.给定一个字符串数组时,返回由空格分隔的所有字符串的串联。

sumOfArray({"cat", "ate", "dog"}) → "cat ate dog"
sumOfArray({"pig", "sleep", "softly"}) → "pig sleep softly"
sumOfArray({"Mary", "had", "a", "little", "lamb"}) → "Mary had a little lamb"

谢谢!

1 个答案:

答案 0 :(得分:1)

我不知道是否应该回答这个问题,但是这里是怎么做的 -

java中的

char仅被视为无符号整数。因此,要获得距离它10个位置的角色,您只需将10添加到角色即可。这是一个快速演示 -

char vx = 'a';
vx = vx + 10;
// Now the value of **vx** is **k**

您可以使用类似的算法来回答您的第二个问题 -

String str = "HELLO";                 //Your string
char[] charArray = str.toCharArray(); //Convert it to a character array

现在数组必须像['H','E','L','L','O']

现在下一步是遍历数组,获取10个字符的字母,然后将其添加到字符串中。

以下是如何操作 -

String encrypted = "";

for (char elements : charArray) {
    encrypted += (elements + 10);
}

加密的字符串应包含所需的加密字符串。


我们可以使用相同的技巧来回答第三个问题。

循环遍历数组,添加数组元素,然后使用这样的空格分隔它们 -

String myList[] = {"Cat", "ate", "dog"};
String fin = "";

for (String conc : myList) {
    fin = fin + conc + " ";
}

//finally remove the last extra space
fin = fin.substring(0, fin.length()-1);

附加说明:

上面给出的示例可能并不总是按预期工作。可能会出现这样的情况 -

char a = 'z';
a = a + 1;

上面给出的示例不会打印 a ,但会打印 {,因为它是Unicode表中 z 的下一个字符。

请参阅ASCII table(或Unicode table以获取更广泛的观点)以识别此类案例并将其消除。

希望有所帮助