这是代码大战活动。 “您的任务是将一个字母加起来。
该函数将被赋予一个char [],每个字符都是要添加的字母,该函数将返回一个char。
注意: 字母总是小写。 字母可能溢出(请参阅说明的倒数第二个示例) 如果没有给出字母,该函数应返回“ z” 例子:
AddLetters(@('a', 'b', 'c')) = 'f'
AddLetters(@('a', 'b')) = 'c'
AddLetters(@('z')) = 'z'
AddLetters(@('z', 'a')) = 'a'
AddLetters(@('y', 'c', 'b')) = 'd' # notice the letters overflowing
AddLetters(@()) = 'z'
Describe "Adding letters" {
It "Basic tests" {
AddLetters(@('a', 'b', 'c')) | Should Be 'f'
AddLetters(@('z')) | Should Be 'z'
AddLetters(@('a', 'b')) | Should Be 'c'
AddLetters(@('c')) | Should Be 'c'
AddLetters(@('z', 'a')) | Should Be 'a'
AddLetters(@('y', 'c', 'b')) | Should Be 'd'
AddLetters(@()) | Should Be 'z'
}
}
我的问题是为什么下面的代码无法完成此任务。我很困惑将这些数字转换回其ASCII值。此时$ y不会将这些值加在一起。我也不明白。 我的代码:
function AddLetters([char[]] $letters) {
$y=0
foreach ($x in $letters) {
$y=+ [byte][int]$x
if ($y -gt 122) {
$y= $y - 25
}
}
$z=[char]$y
return $z
}