添加字母的ASCII值

时间:2019-12-12 13:36:06

标签: arrays foreach ascii

这是代码大战活动。 “您的任务是将一个字母加起来。

该函数将被赋予一个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
}

0 个答案:

没有答案