牛客网--字符串合并处理(Java)

按照指定规则对输入的字符串进行处理。

详细描述:

将输入的两个字符串合并。

对合并后的字符串进行排序,要求为:下标为奇数的字符和下标为偶数的字符分别从小到大排序。这里的下标意思是字符在字符串中的位置。

对排序后的字符串进行操作,如果字符为‘0’——‘9’或者‘A’——‘F’或者‘a’——‘f’,则对他们所代表的16进制的数进行BIT倒序的操作,并转换为相应的大写字符。如字符为‘4’,为0100b,则翻转后为0010b,也就是2。转换后的字符为‘2’; 如字符为‘7’,为0111b,则翻转后为1110b,也就是e。转换后的字符为大写‘E’。

举例:输入str1为"dec",str2为"fab",合并为“decfab”,分别对“dca”和“efb”进行排序,排序后为“abcedf”,转换后为“5D37BF”

接口设计及说明:

/*

功能:字符串处理

输入:两个字符串,需要异常处理

扫描二维码关注公众号,回复: 10887638 查看本文章

输出:合并处理后的字符串,具体要求参考文档

返回:无

*/

void ProcessString(char* str1,char *str2,char * strOutput)

{

}

输入描述:

 

输入两个字符串

输出描述:

 

输出转化后的结果

示例1

输入

复制

dec fab

输出

复制

5D37BF

代码:

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
        String x = sc.next();
        String y = sc.next();
        x = x+y;
        String string1="";
        String string2="";
        for(int i=0;i<x.length();i++){
            if(i%2==0){
                string1+=x.charAt(i);
            }else{
                string2+=x.charAt(i);
            }
        }
         char[] str1=string1.toCharArray();
         char[] str2=string2.toCharArray();
         Arrays.sort(str1);
         Arrays.sort(str2);
        String str="";
        int k=0;
        for(int i=0;i<Math.min(str1.length,str2.length);i++){
            str+=str1[i];
            str+=str2[i];
            if(i==Math.min(str1.length,str2.length)-1){
                     k=i;
                 }
        }
        if(str1.length>str2.length){
            str+=str1[k+1];
        }else if(str1.length<str2.length){
            str+=str2[k+1];
        }
        StringBuffer sb = new StringBuffer();
       // System.out.println(str);
        for(int i=0;i<str.length();i++){
            int a = helper(str.charAt(i));
            if(a<=15)
                sb.append(func(a));
            else
                sb.append((char)(a));
            
        }
        System.out.println(sb.toString());
        }
       
    }
    public static String func(int x) {
         if(x==10){
             return "A";
         }else if(x==11){
             return "B";
         }else if(x==12){
             return "C";
         }else if(x==13){
             return "D";
         }else if(x==14){
             return "E";
         }else if(x==15){
             return "F";
         }
       return String.valueOf(x);
    }
    public static int helper(char x){
        if(x>='0'&&x<='9'){
            int result=0;
            result=(int)(x-'0');
            int a=0,b=0,c=0,d=0;
            if(2*2*2<=result){
                result-=2*2*2;
                a=1;
            }if(2*2<=result){
                result-=2*2;
                b=1;
            }if(2<=result){
                result-=2;
                c=1;
            }if(result>=1){
                result-=1;
                d=1;
            }
            result=2*2*2*d+2*2*c+2*b+a;
            return result;
        }else if(x>='a'&&x<='f'){
            int result=0;
            result=(int)(x-'a'+10);
            int a=0,b=0,c=0,d=0;
            if(2*2*2<=result){
                result-=2*2*2;
                a=1;
            }if(2*2<=result){
                result-=2*2;
                b=1;
            }if(2<=result){
                result-=2;
                c=1;
            }if(result>=1){
                result-=1;
                d=1;
            }
            result=2*2*2*d+2*2*c+2*b+a;
            return result;
        }else if(x>='A'&&x<='F'){
            int result=0;
            result=(int)(x-'A'+10);
            int a=0,b=0,c=0,d=0;
            if(2*2*2<=result){
                result-=2*2*2;
                a=1;
            }if(2*2<=result){
                result-=2*2;
                b=1;
            }if(2<=result){
                result-=2;
                c=1;
            }if(result>=1){
                result-=1;
                d=1;
            }
            result=2*2*2*d+2*2*c+2*b+a;
            return result;
        }
       return (int)(x);
    }
}

发布了311 篇原创文章 · 获赞 9 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/hx1043116928/article/details/105577722