字符串操作-字符串移位
人民网搜索面试---字符串移动(字符串为*号和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=='*'){++starCount;}else if(starCount>0){ s = s;}}for(int i=0;i<starCount;++i){s='*';}return s;}int main(){char s = "AB*C*D";moveStar(s);for(int i=0;i<strlen(s);i++)cout<<s<<endl; return 0;}
页:
[1]