Skip to content

Instantly share code, notes, and snippets.

@Makiyu-py
Last active November 2, 2021 07:33
Show Gist options
  • Save Makiyu-py/fb890ea7f548a10ca54a83bc7815a682 to your computer and use it in GitHub Desktop.
Save Makiyu-py/fb890ea7f548a10ca54a83bc7815a682 to your computer and use it in GitHub Desktop.
Coding Challenge #399 from r/dailyprogrammer implemented in Swift
// Day 3 of learning Swift, trying out coding challenges!
// from https://www.reddit.com/r/dailyprogrammer/comments/onfehl/20210719_challenge_399_easy_letter_value_sum/
// Instructions:
// Assign every lowercase letter a value, from 1 for a to 26 for z. Given a string of lowercase letters, find the sum of the values of the letters in the string.
func lettersum(_ str: String) -> Int {
let lowerStr = str.lowercased()
let letterVals: [Character: Int] = [
"a": 1,"b": 2, "c": 3, "d": 4, "e": 5, "f": 6, "g": 7, "h": 8, "i": 9, "j": 10, "k": 11, "l": 12, "m": 13,
"n": 14, "o": 15, "p": 16, "q": 17, "r": 18, "s": 19, "t": 20, "u": 21, "v": 22, "w": 23, "x": 24, "y": 25, "z": 26
]
func strToVal(_ toVal: Character) -> Int { return letterVals[toVal] ?? 0 }
return lowerStr.reduce(0) { $0 + strToVal($1) }
}
// some examples
let exampleStrings: [String] = ["", "a", "z", "cab", "excellent", "microspectrophotometries"]
for i in exampleStrings {
print("'\(i)' => \(lettersum(i))")
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment