您的位置:首页 > 职场人生

一道有趣的面试题

2012-08-13 17:42 330 查看
题目是这样的(c++):

已知一个字符指针 char *a="865410358748......6487534"; 里面由数字组成的大数字字符,现在的要求是

把这个字符串每个数字按照大小倒序排序。

刚一看到,浮现脑海里的解决办法是 使用冒泡排序

不过,仔细想了想,都是数组组成的字符串,肯定有特殊的地方,最后想到了这个办法:

字符串是由0-9字符组成的,所以外循环

for int i = 0; i<=9;i++{

}

因此,排序算法 转化为 查找 所有数字i的都排在前面

只需要 存储此时 的char 和当前转换的位置

如下:

char *a = "...";

char tmp;

int currentIndex = 0;

for int i = 0; i<=9;i++{

for(int j=i;j<a.lenght;j++){

if(a[j]==i){

currentIndex和j交换位置

currentIndex++;

}

}

}

}

当然上面的只是简单写了伪代码,实际上 字符指针所指向的内容是不能改变的,因为是保存在常量那里,所以还需要strcpy 出一个字符数组来操作 然后返回这个字符数组结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: