Letter Combinations of a Phone Number
2015-07-17 10:29
225 查看
参考编程之美3.2电话号码对应英语单词
以及参考这篇博文
以及参考这篇博文
[code]class Solution { public: vector<string> letterCombinations(string digits) { vector<string> result; char hash_map[10][4] = {{}, {}, {'a', 'b', 'c'}, {'d', 'e', 'f'}, {'g', 'h', 'i'}, {'j', 'k', 'l'}, {'m', 'n', 'o'}, {'p', 'q', 'r', 's'}, {'t', 'u', 'v'}, {'w', 'x', 'y', 'z'}}; int mapNumber[10] = {0, 0, 3, 3, 3, 3, 3, 4, 3, 4}; int length = digits.size(); if(length == 0) return result; int *combinationNumber = new int[length]; for(int i = 0; i < length; i++) combinationNumber[i] = 0; while(true) { string tmp; for(int i = 0; i < length; i++) { tmp.push_back(hash_map[digits[i] - '0'][combinationNumber[i]]); } result.push_back(tmp); int k = length - 1; while(k >= 0) { if(combinationNumber[k] < mapNumber[digits[k] - '0'] - 1) { combinationNumber[k]++; break; }else { combinationNumber[k] = 0; k--; } } if(k < 0) break; } return result; } };
相关文章推荐
- ubuntu安装配置搜狗拼音输入法
- Lua中的元表和元方法
- django QuerySet里那些常用又不常见的技巧
- Linux基础--安装搭建tomcat+java+mysql
- 服务器就老老实实当服务器
- Jmeter支撑高并发测试
- 安装vmware tools
- Linux下安装Matlab2014及破解
- IOS通过经纬度进行反向地址解析(有些方法虽然过时了,但是依然很好用!)
- Unity3D架构设计NavMesh寻路
- Highways - poj 2485 (Prim 算法)
- Swift2.0语言教程之函数的返回值与函数类型
- 关于Serializable
- 7.17 Django学习之模型
- jQuery实现径向动画菜单效果
- Shell脚本学习之逻辑判断
- 蓝牙4.0 For IOS
- 利用solrj实现solr4.3.1的高亮实现
- unity自带寻路Navmesh入门教程
- unity5是否是移动端游戏开发王者?