【PHP】算法基础-字符移位
2017-09-09 12:48
405 查看
小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
你能帮帮小Q吗?
输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.
对于每组数据,输出移位后的字符串。
输入
AkleBiCeilD
输出
kleieilABCD
这道题,不能申请额外的空间,就是在原有字符串上操作,还得保证各个字符串的相对位置,利用冒泡排序的思想是最容易想到的处理方法。
有木有和冒泡排序很像,哈哈!
你能帮帮小Q吗?
输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.
对于每组数据,输出移位后的字符串。
输入
AkleBiCeilD
输出
kleieilABCD
这道题,不能申请额外的空间,就是在原有字符串上操作,还得保证各个字符串的相对位置,利用冒泡排序的思想是最容易想到的处理方法。
<?php while($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; }
有木有和冒泡排序很像,哈哈!
相关文章推荐
- 算法基础-字符移位
- [腾讯校招] 算法基础-字符移位
- 腾讯2017暑期实习生编程题——算法基础-字符移位
- 腾讯校招编程题——算法基础-字符移位
- [编程题] 算法基础-字符移位
- 算法基础-字符移位
- [面试编程题]算法基础-字符移位
- 腾讯2017年实习生编程题目(第二题)----2.算法基础-字符移位 小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
- 算法基础-字符移位
- 腾讯2017实习生编程之算法基础-字符移位
- 腾讯笔试题 1 算法基础-字符移位
- 算法基础-字符移位
- 腾讯笔试题-算法基础-字符移位
- 【真题】腾讯2017暑假实习生编程题 算法基础-字符移位
- [编程题] 算法基础-字符移位
- 腾讯笔试编程题:算法基础-字符移位(C++)
- 算法基础-字符移位
- 算法基础-字符移位
- [编程题] 算法基础-字符移位
- 算法基础-字符移位