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

华为OJ——字符串合并处理

时间:2016-08-13 11:30:36      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:

题目描述

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

详细描述:

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

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

对排训后的字符串进行操作,如果字符为‘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”

接口设计及说明:

/*

功能:字符串处理

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

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

返回:无

*/

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

{

}

 

输入描述:

输入两个字符串

输出描述:

输出转化后的结果

输入例子:
dec fab
输出例子:
5D37BF
代码:

import java.util.*;
public class Main{

	public static void main(String[] args) {

		Scanner scan=new Scanner(System.in);
		StringBuilder sb1=new StringBuilder();
		StringBuilder sb2=new StringBuilder();
		while(scan.hasNext())
		{
			String str1=scan.next();
			String str2=scan.next();
			String str=str1+str2;
			char[] chars=(str1+str2).toCharArray();
			for(int i=0;i<str.length();i++)
			{
				sb1.append(chars[i]);
				i++;
			}
			for(int i=1;i<str.length();i++)
			{
				sb2.append(chars[i]);
				i++;
			}
			char[] cha1=sb1.toString().toCharArray();
			char[] cha2=sb2.toString().toCharArray();
			Arrays.sort(cha1);
			Arrays.sort(cha2);
			char[] chars2=new char[str.length()];
			int m=0,n=0;
			for(int i=0;i<str.length();i++)
			{
				if(i%2==0)
				{
					chars2[i]=cha1[m];
					m++;
				}
				else
				{
					chars2[i]=cha2[n];
					n++;
				}
			}
			for(int i=0;i<str.length();i++)
			{
				System.out.print(BIT(chars2[i]));
			}
		}
	}
	
	static char BIT(char ch)
	{
		 switch (ch)
	        {
	            case '0': ch='0';break;
	            case '1': ch='8';break;
	            case '2': ch='4';break;
	            case '3': ch='C';break;
	            case '4': ch='2';break;
	            case '5': ch='A';break;
	            case '6': ch='6';break;
	            case '7': ch='E';break;
	            case '8': ch='1';break;
	            case '9': ch='9';break;
	             
	            case 'A': ch='5';break;
	            case 'B': ch='D';break;
	            case 'C': ch='3';break;
	            case 'D': ch='B';break;
	            case 'E': ch='7';break;
	            case 'F': ch='F';break;
	             
	            case 'a': ch='5';break;
	            case 'b': ch='D';break;
	            case 'c': ch='3';break;
	            case 'd': ch='B';break;
	            case 'e': ch='7';break;
	            case 'f': ch='F';break;
	            default : ch=ch;break;
	        }
		 return ch;
	}
}



华为OJ——字符串合并处理

标签:

原文地址:http://blog.csdn.net/tingzhiyi/article/details/52192091

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