摘要: 如将字符串 "i am a student."翻转后的结果应该为"student. a am i"思路:先翻转整个句子,再翻转句子中的单词两次翻转达到结果(i am a student.)-(.tneduts a ma i)-(student. a am i)// 思路:先翻转整个句子,再翻转句子中的单词// 两次翻转达到结果(i am a student.)-(.tneduts a ma i)-// (students a am i)public static void main(String[] args) { String word = " 阅读全文
posted @ 2014-04-12 21:14 狂奔蚂蚁 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 题目:用递归颠倒一个栈。例如输入栈{1, 2, 3, 4, 5},1在栈顶。颠倒之后的栈为{5, 4, 3, 2, 1},5处在栈顶。分析:我们把栈{1, 2, 3, 4, 5}看成由两部分组成:栈顶元素1和剩下的部分{2, 3, 4, 5}。如果我们能把{2, 3, 4, 5}颠倒过来,变成{5, 4, 3, 2},然后在把原来的栈顶元素1放到底部,那么就整个栈就颠倒过来了,变成{5, 4, 3, 2, 1}。接下来我们需要考虑两件事情:一是如何把{2, 3, 4, 5}颠倒过来变成{5, 4, 3, 2}。我们只要把{2, 3, 4, 5}看成由两部分组成:栈顶元素2和剩下的部分{3, 4 阅读全文
posted @ 2014-04-12 21:11 狂奔蚂蚁 阅读(485) 评论(0) 推荐(0) 编辑
摘要: TIPS:‘%20’有三个字符构成,遍历直接替换的话需要增加字符串的空间,然后进行移位和替换,因此,先计算空格数目,直接算好替换后需要空间,然后从尾部开始遍历。算法流程:1遍历字符串,记录下有多少个空格;2从字符串尾部重新解析: (1)如果当前字符为空格,在写入字符串'%20' (2)非空格则直接记录。/** length为字符数组的容量 */private static void replaceBlank(char[] string, int length) { if (string==null||length==0) { return; } //originalLength 阅读全文
posted @ 2014-04-12 21:06 狂奔蚂蚁 阅读(292) 评论(0) 推荐(0) 编辑