2016年4月28日
摘要: 注意题目的特殊要求: 最后结果前后不能有空格,每个单词之间的空格只能有一个。 这里使用了string类的resize函数,将s变为长度为j的字符串(删除多余字符,或者补默认字符)。 这种方法没有申请新的空间,相当于原地重新构建字符串,通过i来不断寻找下一个单词的位置。 阅读全文
posted @ 2016-04-28 18:37 summerkiki 阅读(124) 评论(0) 推荐(0) 编辑
  2016年4月24日
摘要: atoi()函数将C类型的字符串转换为int值。 1.忽略字符串开头的空格直至遇到非空格字符 2.字符串的开头可以有'+'或者'-',正号或负号后接十进制数字 3.所有数字后面的非法字符都将被忽略,且对函数功能不产生任何影响 4.如果第一个非空格序列非法或者字符串为空或者只有空格,则不进行任何转换并 阅读全文
posted @ 2016-04-24 21:51 summerkiki 阅读(241) 评论(0) 推荐(0) 编辑
  2016年4月23日
摘要: 题目: 给定一个字符串S[0...N-1],要求把S的前k个字符移动到S的尾部,如把字符串"abcdef"前面的2个字符'a','b'移动到字符串的尾部,得到新的字符串"cdefab":即字符串循环左移k位。 算法要求:时间复杂度O(N),空间复杂度为O(1) *循环左移k位等价于循环右移N-k位 阅读全文
posted @ 2016-04-23 15:53 summerkiki 阅读(3098) 评论(0) 推荐(0) 编辑
  2016年4月15日
摘要: 递归方法: 非递归: 阅读全文
posted @ 2016-04-15 10:52 summerkiki 阅读(140) 评论(0) 推荐(0) 编辑
  2016年4月14日
摘要: 递归方法: 非递归方法: 阅读全文
posted @ 2016-04-14 22:00 summerkiki 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 非递归写法: 阅读全文
posted @ 2016-04-14 19:59 summerkiki 阅读(129) 评论(0) 推荐(0) 编辑
  2016年4月10日
摘要: 因为要算匹配长度,所以要记录起始的位置。思路上要分三种情况吧,一种是完全匹配,一种是未匹配的是‘)’,一种是未匹配的是‘(’。如果发现没有左括号可以和右括号匹配,那么只要把右括号位置设置为start,重新开始新一轮的寻找就可以了;如果没有右括号可以和左括号匹配,则要用当前位置减去堆栈栈顶的左括号位置 阅读全文
posted @ 2016-04-10 11:28 summerkiki 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 一开始的时候,我return的是result,但是在leetcode上有一个测试用例无法通过,那就是当只输入一个常量而不进行运算的时候,比如[“18”]。这种情况下应该输出18,而return result则返回0。 阅读全文
posted @ 2016-04-10 10:22 summerkiki 阅读(136) 评论(0) 推荐(0) 编辑
  2016年4月3日
摘要: 单源点的最短路径:给定带权有向图G和源点v,求从v到G中其余各顶点的最短路径。 求解方法:Dijkstra算法,基本思想是按路径长度递增的次序产生最短路径的算法。若S为已求得最短路径的终点的集合,那么下一条最短路径(设其终点为x)或者弧(v,x),或者是中间只经过S中的顶点而最后到达顶点x的路径。 阅读全文
posted @ 2016-04-03 17:58 summerkiki 阅读(3892) 评论(0) 推荐(0) 编辑
摘要: 参考:http://www.cnblogs.com/lebronjames/archive/2010/07/04/1770987.html 1. 用法 void *memset(void *s, int ch, unsigned n); 使用时要声明头文件: #include <string.h> 阅读全文
posted @ 2016-04-03 11:51 summerkiki 阅读(200) 评论(0) 推荐(0) 编辑