摘要: 比较简单,细节:先将字符串翻转,注意进位。 string addBinary(string a, string b) { string result; int len = a.size() > b.size() ? a.size() : b.size(); reverse(a.begin(), a. 阅读全文
posted @ 2016-05-23 13:10 牧马人夏峥 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 字符串转为数字,细节题。要考虑空格、正负号,当转化的数字超过最大或最小是怎么办。 int atoi(char *str) { int len = strlen(str); int sign = 1; int num = 0; int i = 0; while (str[i] == ' '&& i < 阅读全文
posted @ 2016-05-23 12:53 牧马人夏峥 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 字符串的匹配,返回匹配开始的位置,直接用暴力方式求解。为了更快的匹配,定义一个指针表示待匹配的字符串的长度,当长度不足时,可 直接停止匹配。 char *strStr(char *haystack, char*needle) { char* p1; char* p2; char* p1_advanc 阅读全文
posted @ 2016-05-23 12:30 牧马人夏峥 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 现在开始进入字符串系列。 判断回文串的。首尾各定义一个指针,然后相比较。难点在于如何提出非字母数字的字符。 bool isValidPalind(string s) { //转为小写,注意这个函数的用法 transform(s.begin(), s.end(), s.begin(), ::towlo 阅读全文
posted @ 2016-05-23 11:21 牧马人夏峥 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 很实际的一道题。定义一个双向链表list,方便插入和删除;定义一个哈希表,方便查找。 具体的,哈希表存放每个结点的key和它对应的结点的地址;访问结点时,如果结点存在,则将其交换到头部,同是更新哈希表中的地址; 插入结点时,首先判断capacity是否达到了上限,如果是则在链表和哈希表中删除该结点; 阅读全文
posted @ 2016-05-23 11:03 牧马人夏峥 阅读(153) 评论(0) 推荐(0) 编辑