2014年9月14日
摘要: 假定有一个方法isSubstring,可检查一个单词是否为其他字符串的字串。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成,要求只能调用一次isSubstring。(比如,waterbottle是erbottlewat旋转后的字符串。)分析:将两个s1拼接起来,调用isSubstri... 阅读全文
posted @ 2014-09-14 20:50 游不动の鱼 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 编写一个算法,若MXN矩阵中某个元素为0,则将其所在的行和列清零。分析:见 http://www.cnblogs.com/moderate-fish/p/3932591.html 阅读全文
posted @ 2014-09-14 20:39 游不动の鱼 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 给定一幅NXN矩阵表示的图像,其中每个像素的大小为4字节,编写一个方法,将图像旋转90度。不占用额外内存空间能否做到?分析:此处假设对图像做顺时针旋转。对于image[i][j],其顺时针旋转角度与对应点坐标分别为:90度--image[j][n-i-1], 180度--image[n-i][n-j... 阅读全文
posted @ 2014-09-14 20:34 游不动の鱼 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 编写一个方法,将字符串中的空格全部替换为"%20"。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的"真实"长度。示例输入:"Mr John Smith"输出:"Mr%20John%20Smith"分析:先确定替换后的字符串的长度,然后从后往前处理输入字符串。 1 #include 2 ... 阅读全文
posted @ 2014-09-14 20:22 游不动の鱼 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串"aabcccccaaa"会变为"a2b1c5a3"。若“压缩”后的字符串没有变短,则返回原先的字符串。分析:依次遍历输入字符串的每个字符,若当前字符与前一个字符相同,则计数加1;否则,将前一个字符及其出现次数存入压缩字符串... 阅读全文
posted @ 2014-09-14 20:15 游不动の鱼 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。分析:一个字符串的字符重新排列能变成另一个字符串,要求两个字符串出现的字符类型和数目相同。使用一个数组记录每个字符出现的情况即可。此处假设输入字符为ASCII字符。 1 #include 2 #include ... 阅读全文
posted @ 2014-09-14 20:03 游不动の鱼 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 用C或C++实现void reverse( char* str )函数,即反转一个null结尾的字符串。分析:先确定字符串的长度,然后从两端往中间遍历,同时交换两端的元素。 1 #include 2 #include 3 #include 4 5 using namespace std; 6... 阅读全文
posted @ 2014-09-14 19:49 游不动の鱼 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 实现一个算法,确定一个字符串的所有字符是否全都不同。假使不允许使用额外的数据结构,又该如何处理?分析:依次遍历输入字符串的每个字符,若当前字符已经出现过,则返回false;否则,继续处理下一个字符。可以使用位操作来降低空间要求,假设输入字符为ASCII字符。 1 #include 2 #inclu... 阅读全文
posted @ 2014-09-14 19:41 游不动の鱼 阅读(204) 评论(0) 推荐(0) 编辑