• 字符移位


    来源: 牛客网 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
  • 相关阅读:
    常用的服务器简介
    PHP Proxy 负载均衡技术
    Hexo 博客Next 搭建与美化主题
    Tomcat PUT方法任意文件上传(CVE-2017-12615)
    哈希爆破神器Hashcat的用法
    内网转发随想
    Oauth2.0认证
    Github搜索语法
    记一次挖矿木马清除过程
    利用ICMP进行命令控制和隧道传输
  • 原文地址:https://www.cnblogs.com/duanguyuan/p/5675179.html
Copyright © 2020-2023  润新知