快慢指针____函数将字符串中的字符'*'移到串的前部分,前面的非'*'字符后移
2013-02-23 02:15
267 查看
函数将字符串中的字符'*'移到串的前部分,前面的非'*'字符后移,但不能改变非'*'字符的先后顺序,函数返回串中字符'*'的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函数并返回值为5。(要求使用尽量少的时间和辅助空间
类似快慢指针
i j初值为length - 1 ,如果为0则顺序会产生一定的颠倒
i指向字母,容易保证字母指针指的靠前(只要i指向字母 就跟j指向的*换位置,换位置后则i--,j-- ;i指向*号时,i-- count++)
j指向*
交换代码部分替换为
array[j] = array[i];
array[i] = '*';
为何出错?
类似快慢指针
i j初值为length - 1 ,如果为0则顺序会产生一定的颠倒
i指向字母,容易保证字母指针指的靠前(只要i指向字母 就跟j指向的*换位置,换位置后则i--,j-- ;i指向*号时,i-- count++)
j指向*
交换代码部分替换为
array[j] = array[i];
array[i] = '*';
为何出错?
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> int fun(char array[]) { int length = strlen(array); int i, j, count; char temp; for(i = j = length - 1, count = 0; i >= 0; ) { if(array[i] != '*') { temp = array[j]; array[j] = array[i]; array[i] = temp; i--; j--; } else { i--; count++; } } return count; } int main() { char a1[] = "ab**cd**e*12"; printf("%d\n", fun(a1)); puts(a1); return 0; }
相关文章推荐
- 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配
- 将字符串中的字符'*'移到串的前部分,前面的非'*'字 符后移,但不能改变非'*'字符的先后顺序,函数返回串中字符'*'的数量
- 函数将字符串中的字符'*'移到串的前部分,前面的非'*'字符后移(快慢指针)
- 微软算法100题88 将字符串中的字符'*'移到串的前部分
- 函数将字符串中的字符'*'移到串的前部分,前面的非'*'字符后移,但不能改变非'*'字符的先后顺序
- 16、2005年11月金山笔试题。编码完成下面的处理函数。函数将字符串中的字符'*'移到串的前部分,前面的非'*'字符后移,但不能改变非'*'字符的先后顺序,函数返回串中字符'*'的数量。如原始串为:
- 将字符串中的字符'*'移到串的前部分(联发科实习生笔试题)
- 【微软100题】定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。
- C语言 编写字符串操作函数strrchr,在字符串中查找目标字符最后一次出现的位置,返回指向这次位置的指针。
- 统计字符串中各种字符的个数----函数//指针做法和非指针做法
- 习题 8.19(1) 编写一个函数new,对n个字符开辟连续的存储空间,此函数应返回一个指针(地址),指向字符串开始的空间。new(n)表示分配n个字节的内存空间。
- 笔试题-输入一个字符数组将这些字符串按顺序合并输出-指针数组-数组指针-函数指针-指针函数
- Delphi 字符、字符串、字符数组和字符指针及其相关函数
- 用字符指针作函数参数来实现字符串的复制
- 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字
- 数组与字符串、字符指针与其他类型指针、赋值参数、指针参数以及引用参数、函数指针
- java 去掉字符串中的'/'字符
- 一道二级C题引发的思考-- c++函数传递指针的本质 与 字符串指针与字符数组的区别
- 函数内 声明一个字符数组和一个指向字符串数组的指针 区别
- 【C】【笔记】《C和指针》 第六章 指针 第七章 函数 第八章 数组 第九章 字符串、字符和字节