码迷,mamicode.com
首页 > 其他好文 > 详细

字符移位

时间:2016-07-16 06:57:11      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

来源: 牛客网 http://www.nowcoder.com/questionTerminal/7e8aa3f9873046d08899e0b44dac5e43

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

输入描述:


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


输出描述:


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

输入例子:

AkleBiCeilD

输出例子:

kleieilABCD


 

要求不能用额外的空间,那就只能就地移动了。遍历到一个大写字母,将其后的所有字符向前移动一步,然后将此大写字母放到末尾。重复以上过程。

技术分享
import java.util.*;


public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            String s = sc.nextLine();
            char[] a = s.toCharArray();
            int n = s.length();
            int end = n;
            for (int i = 0; i < end; ++i) {
                if (a[i] >= ‘A‘ && a[i] <= ‘Z‘) {
                    char tmp = a[i];
                    for (int j = i; j < n - 1; ++j)
                        a[j] = a[j + 1];
                    a[n - 1] = tmp;
                    end--;
                    i--;
                }
            }
            for (int k = 0; k < n; ++k)
                System.out.print(a[k]);
            System.out.println();
        }
    }
}
View Code

 

字符移位

标签:

原文地址:http://www.cnblogs.com/duanguyuan/p/5675179.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!