2005年金山笔试题之一

来源:互联网 发布:java从网页抓取数据 编辑:程序博客网 时间:2024/05/01 14:51

      2005年金山笔试题。编码完成如下处理函数:函数将字符串中的字符‘*’移动到字符串的前部分,前面的非‘*’字符后移,但是不能改变非‘*’字符的先后顺序,函数返回字符串中字符‘*’的个数。例如,输入字符串为:ab**cd**e*12,处理之后字符串为*****abcde12,函数返回5.(要求使用尽量少的时间和辅助空间)

#include <iostream>#include <cstdlib>using namespace std;int changle(char* str);int main(){char str[] = "ab**cd**e*12";cout<<"str = "<<str<<endl;cout<<"str = "<<str<<" count = "<<changle(str)<<endl;cout<<"press any key to continue...";getchar();}int changle(char* str){int i;int j = strlen(str) - 1;for (i = j; j >= 0; j--){if (str[i] != '*'){i--;}else if (str[j] != '*'){str[i] = str[j];str[j] = '*';i--;}}return i + 1;}


原创粉丝点击