【PHP】算法基础-字符移位

来源:互联网 发布:tomcat更改端口号 编辑:程序博客网 时间:2024/06/04 20:11

小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。

你能帮帮小Q吗?

输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.

对于每组数据,输出移位后的字符串。

输入

AkleBiCeilD

输出

kleieilABCD

这道题,不能申请额外的空间,就是在原有字符串上操作,还得保证各个字符串的相对位置,利用冒泡排序的思想是最容易想到的处理方法。

<?phpwhile($str = trim(fgets(STDIN))){    for($i = 0; $i < strlen($str); $i++){        $flag = true;        for($j = 0; $j < strlen($str)-1; $j++){        //如果,当前位置为一个大写字母,并且其后面一位不是大写字母,则交换这两个数的位置,否则不交换            if($str[$j]>='A' && $str[$j]<='Z' && ($str[$j+1]>'Z' || $str[$j+1]<'A')){                $temp = $str[$j];                $str[$j] = $str[$j+1];                $str[$j+1] = $temp;                $flag = false;            }        }        if($flag){//如果一轮循环下来,没有发生交换,则说明都已经交换完毕,退出循环输出结果即可            break;        }    }    echo $str.PHP_EOL;}

有木有和冒泡排序很像,哈哈!

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 a1驾照扣3分怎么办 a1驾照扣12分怎么办 吃了毓婷哺乳了怎么办 吃了毓婷后出血怎么办 吃金毓婷喝了水怎么办 白带浓稠浆糊样怎么办 驾校学费不给退怎么办 b1驾证扣了9分怎么办 机动车登记证丢了怎么办 b1驾照扣了9分怎么办 听力正常体检不过关怎么办 做完人流第二天同房了怎么办 医院的票据丢了怎么办 体检人体成分(脂肪缺乏)该怎么办 诊断出右下叶肺炎怎么办 做胸透穿钢圈内衣怎么办 预约不上留学体检怎么办 跨省离职后社保怎么办 开车到成都限号怎么办 月经量多怎么办吃什么 报驾校体检视力不达标怎么办 换驾驶证c1一只眼不合格怎么办 考驾照紧张腿抖怎么办 驾照该换了色弱怎么办 怀孕5个月感冒咳嗽怎么办 怀孕4个月喉咙痛怎么办 怀孕5个多月总是咳嗽尿失禁怎么办 怀孕7个月感冒了怎么办 怀孕7个月感冒喉咙痛怎么办 孕38周感冒咳嗽喉咙痛怎么办 嗓子痛咳嗽有痰怎么办 怀孕6个月了咳嗽怎么办 怀孕了咳嗽黄痰怎么办 科二5次没考过怎么办 交警开的罚单丢了怎么办 驾驶员从业资格证被水洗了怎么办 驾照考五次没过怎么办 学车每次考不过怎么办 年检超期3个月怎么办 年检超过3个月怎么办 工商执照年检时候忘记密码怎么办