六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 40|回复: 0

字符串操作-字符串移位

[复制链接]

升级  50.67%

32

主题

32

主题

32

主题

秀才

Rank: 2

积分
126
 楼主| 发表于 2013-1-26 12:28:51 | 显示全部楼层 |阅读模式
人民网搜索面试---字符串移动(字符串为*号和26个字母的任意组合,把*号都移动到最左侧,把字母移到最右侧并保持相对顺序不变),要求时间和空间复杂度最小
#include <iostream>#include <cstring>using namespace std;char* moveStar(char *s){if(!s) return NULL;int len = strlen(s);int starCount = 0;for(int i=len-1;i>=0;--i){if(s[i]=='*'){++starCount;}else if(starCount>0){ s[i+starCount] = s[i];}}for(int i=0;i<starCount;++i){s[i]='*';}return s;}int main(){char s[7] = "AB*C*D";moveStar(s);for(int i=0;i<strlen(s);i++)cout<<s[i]<<endl;    return 0;}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表