(移動順序保證字符串相對位置不變)小Q最近遇到了一個難題:把一個字符串的大寫字母放到字符串的后面,各個字符的相對位置不變,且不能申請額外的空間。 你能幫幫小Q嗎?


思路:這個題的思路是可以考慮用插入排序的思想,首相我們需要的是將大寫字母和小寫字母進行互換,針對這道題來講,是將小寫字母放在大寫字母的前面,那么我們就需要找到小寫字母,然后將其保存到一個變量,將其前面的大些字母往后移,最終再將此值插入到首個大寫字母的位置。

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        while(scan.hasNext()){
            String str = scan.nextLine();
            System.out.println(getResult(str));
        }
    }
    public static String getResult(String str){
        char[] c = str.toCharArray();
        int k=0;
        for(int i=0;i<c.length;i++){
            if(String.valueOf(c[i]).matches("[a-z]")){
                char temp = c[i];
                for(int j=i;j>k;j--){
                    c[j] = c[j-1];   
                }
                c[k] = temp;
                k++;
            }
        }
        String str2 = String.valueOf(c);
        return str2;
    }
     
}
添加筆記

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM