编程之法
开始编程的李先生
开始编程,开始pat准备
展开
-
字符串的旋转
最近开始读July的编程之法(面试和算法心得),开始把里面的小例子与与其中小练习题拿出来与大家分享题目描述: 给定一个字符串,要求将字符串前面的若干字符转移到字符串的尾部。例如,将字符串“abcdef”的前3个字符串’a”b”c’移到字符串的尾部,那么,原字符串将变为“defabc”。解法一:蛮力移位(将字符一个个移到最后,此处省略) 解法二:三步翻转 三个步骤: (1)将原字符串分原创 2016-06-07 17:45:49 · 397 阅读 · 0 评论 -
字符串的包含
题目要求:给定一长字符串和一短字符串。请问,如何最快的判断短字符串中的所有字符是否都在长字符串中。 解法一:(蛮力轮询) 轮询短字符串中的每一个字符,逐个与长字符串中的每个字符进行比较。 代码略 解法二:(排序后轮询) 先将两个字符串进行排序,然后依次轮询,减少时间复杂度 代码略 解法三:(素数相乘) (1)按照从大到小的顺序,用26个素数分别代替长字符串中的所有字母 (2)遍历长原创 2016-06-08 11:39:08 · 496 阅读 · 2 评论 -
回文判断
题目要求:递归实现回文判断(如:abcdedbca就是回文) 网上答案:int find(char *str, int n) { if(n<=1) return 1; else if(str[0]==str[n-1]) return find(str+1, n-2); else return 0; }int main(int argc, char* arg原创 2016-06-02 20:53:09 · 458 阅读 · 0 评论 -
字符串算法练习题一
1.实现字符串翻转函数 实现字符串翻转函数。例如,“July”翻转后成为“yluJ”/*实现字符串的反转*/ void reverseString(char *s,int n){ int from =0; int to = n -1; while(from < to){ int temp = s[from]; s[from++] = s[to原创 2016-06-15 14:23:10 · 367 阅读 · 0 评论