zoukankan      html  css  js  c++  java
  • 牛客网——华为机试(题26:字符串排序)(Java)

    题目描述:

    编写一个程序,将输入字符串中的字符按如下规则排序。

    规则 1 :英文字母从 A 到 Z 排列,不区分大小写。

           如,输入: Type   输出: epTy

    规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。

         如,输入: BabA   输出: aABb

    规则 3 :非英文字母的其它字符保持原来的位置。

         如,输入: By?e   输出: Be?y

    样例:

        输入:

       A Famous Saying: Much Ado About Nothing(2012/8).

        输出:

       A  aaAAbc   dFgghh :  iimM   nNn   oooos   Sttuuuy (2012/8).

    输入描述:

    输出描述:

    示例1:

    输入:

    A Famous Saying: Much Ado About Nothing (2012/8).

    输出:

    A aaAAbc dFgghh: iimM nNn oooos Sttuuuy (2012/8).

    代码: 

    import java.util.Scanner;
    
    public class Main {
    	public static void main ( String[] args ) {
    		Scanner in = new Scanner( System.in );
    		
    		while( in.hasNextLine() ) {
    		
    		String s = in.nextLine();
    		String str[] = new String[ s.length( ) ]; 
    		String sortStr[] = new String[ s.length( ) ];
    		
    		int j = 0;
    		for ( int i = 0 ; i < s.length() ; i++ ) {
    			if ( ( s.charAt( i ) >= 65 && s.charAt( i ) <= 90 ) || ( s.charAt( i ) >= 97 && s.charAt( i ) <= 122 ) ) {
    				str[ j ] = String.valueOf( s.charAt( i ) );
    				j++;
    			}
    		}
    		
    		String str1[] = new String[ j ];
    		for ( int i = 0 ; i < j ; i++ ) {
    			str1[ i ] = str[ i ];
    		}
    		sort( str1 );
    		
    		for ( int i = 0 ; i < s.length(); i++ ) {
    			if ( !( ( s.charAt( i ) >= 65 && s.charAt( i ) <= 90 ) || ( s.charAt( i ) >= 97 && s.charAt( i ) <= 122 ) ) ) {
    				sortStr[ i ] = String.valueOf( s.charAt( i ) );
    			}
    		}
    		
    		int k = 0;
    		for( int i = 0 ; i < str1.length && k < s.length() ; k++ ) {
    			if ( sortStr[ k ] == null ) {
    				sortStr[ k ] = str1[ i ];
    				i++;
    			}
    		}
    		
    		for ( String e : sortStr ) {
    			System.out.print( e );
    		}
    		
    		System.out.println( );
    		
    		}
    		in.close();
    	}
    	
    	static void sort( String[] str ) {
    		int j;
    		for ( int i = 1 ; i < str.length ; i++ ) {
    			String temp = str[ i ];
    			for ( j = i ; j > 0 && sortAa( temp.charAt( 0 ) ) < sortAa( str[ j - 1 ].charAt( 0 ) ) ; j-- ) {
    				str[ j ] = str[ j - 1 ];
    			}
    			str[ j ] = temp;
    		}
    	}
    	
    	static int sortAa( Character c ) {
    		if ( c >= 65 && c <= 90 ) {
    			return c + 32;
    		}
    		else {
    			return c;
    		}
    	}
    }
    
    
  • 相关阅读:
    IM 融云 之 初始化及登录
    IM 融云 之 安装cocoapods 安装 SDK
    github desktop 下载
    iOS 架构模式
    IM 融云 之 通讯能力库API
    IM 融云 之 开发基础概念
    IM 之 融云
    php获得文件的属性
    js模拟复制
    linux修改yum源
  • 原文地址:https://www.cnblogs.com/cg-bestwishes/p/10681155.html
Copyright © 2011-2022 走看看