diff --git a/Highest Scoring Word/highest_scoring_word.cpp b/Highest Scoring Word/highest_scoring_word.cpp new file mode 100644 index 0000000..104d35a --- /dev/null +++ b/Highest Scoring Word/highest_scoring_word.cpp @@ -0,0 +1,54 @@ +#include +#include +#include +#include + +std::string alphabet = "abcdefghijklmnopqrstuvwxyz"; + +std::map generateAlphabetScores(){ + std::map result; + for(int i = 0; i scores = generateAlphabetScores(); + +int calcScore(std::string word){ + int score = 0; + for(auto c: word){ + score += scores[c]; + } + return score; +} + +std::vector split(std::string input, std::string delimiter = " "){ + ulong pos = 0; + std::vector result; + while((pos = input.find(delimiter)) != std::string::npos){ + result.push_back(input.substr(0, pos)); + input.erase(0, pos + delimiter.length()); + } + // Append remaining element! + result.push_back(input); + return result; +} + +std::string highestScoringWord(const std::string &str) +{ + int score = 0; + std::string bestWord = ""; + for(auto word: split(str)){ + int newScore = calcScore(word); + if(newScore > score){ + score = newScore; + bestWord = word; + } + } + return bestWord; +} + +int main(){ + std::cout << highestScoringWord("aa b"); +}