static inline void appendHexChar(StringBuilder& target, wchar_t ch) { target.append('u'); target.append(digitToChar(ch & 0xf000)); target.append(digitToChar(ch & 0x0f00)); target.append(digitToChar(ch & 0x00f0)); target.append(digitToChar(ch & 0x000f)); }
vector<string> letterCombinations(string digits) { int length = (int)digits.length(); vector<string> strings; if (length == 0) { strings.push_back(""); return strings; } string prefix = digitToChar(digits[0] - '0'); if (prefix.length() == 0) return letterCombinations(digits.substr(1)); else { vector<string> suffix = letterCombinations(digits.substr(1)); int preLength = (int)prefix.length(); for (int i = 0; i < preLength; i++) { for (unsigned int j = 0; j < suffix.size(); j++) { string s = string(1, prefix[i]); strings.push_back(s.append(suffix[j])); } } } return strings; }