字符串合并处理

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

详细描述:

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

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

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

{

}

输入描述:

输入两个字符串

输出描述:

输出转化后的结果

输入例子:
  1. dec fab
输出例子:
  1. 5D37B
  1. import java.util.*;
  2. public class Main{
  3. public static void main(String[] args){
  4. Scanner in = new Scanner(System.in);
  5. while(in.hasNext()){
  6. String s1 = in.next();
  7. String s2 = in.next();
  8. String s = s1 + s2;
  9. StringBuffer sb1 = new StringBuffer();
  10. StringBuffer sb2 = new StringBuffer();
  11. for(int i=0;i<s.length();i++){
  12. if(i%2==0){
  13. sb1.append(s.charAt(i));
  14. }else{
  15. sb2.append(s.charAt(i));
  16. }
  17. }
  18. char[] chs1 = sb1.toString().toCharArray();
  19. char[] chs2 = sb2.toString().toCharArray();
  20. Arrays.sort(chs1);
  21. Arrays.sort(chs2);
  22.  
  23. char [] cha = new char[chs1.length+chs2.length];
  24. int j = 0, k = 0;
  25. for (int i=0; i<cha.length; i++)
  26. {
  27. if (i%2 == 0)
  28. {
  29. cha[i] = chs1[j];
  30. j++;
  31. }
  32. else
  33. {
  34. cha[i] = chs2[k];
  35. k++;
  36. }
  37.  
  38. }
  39.  
  40. for (int i=0; i<cha.length; i++)
  41. {
  42. cha[i] = change(cha[i]);
  43. }
  44.  
  45. System.out.println(cha);
  46. }
  47.  
  48. in.close();
  49. }
  50.  
  51. // 不明觉厉
  52. public static char change(char a) {
  53. char res;
  54. switch (a) {
  55. case '0': res='0';break;
  56. case '1': res='8';break;
  57. case '2': res='4';break;
  58. case '3': res='C';break;
  59. case '4': res='2';break;
  60. case '5': res='A';break;
  61. case '6': res='6';break;
  62. case '7': res='E';break;
  63. case '8': res='1';break;
  64. case '9': res='9';break;
  65.  
  66. case 'A': res='5';break;
  67. case 'B': res='D';break;
  68. case 'C': res='3';break;
  69. case 'D': res='B';break;
  70. case 'E': res='7';break;
  71. case 'F': res='F';break;
  72.  
  73. case 'a': res='5';break;
  74. case 'b': res='D';break;
  75. case 'c': res='3';break;
  76. case 'd': res='B';break;
  77. case 'e': res='7';break;
  78. case 'f': res='F';break;
  79. default :res=a;
  80. }
  81. return res;
  82. }
  83.  
  84. }
  1.  

华为OJ:字符串合并处理的更多相关文章

  1. 华为OJ—字符串排序(排序,忽略指定字符排序)

    http://career-oj.huawei.com/exam/ShowProblemInfo?id=2168 编写一个程序,将输入字符串中的字符按如下规则排序. 规则1:英文字母从A到Z排列,不区 ...

  2. 华为oj 字符串最后一个单词的长度

    <img alt="http://img.bbs.csdn.net/upload/201508/06/1438867109_670158.jpg" src="htt ...

  3. 华为OJ:字符串反转

    非常easy,逆向输出就好了. import java.util.Scanner; public class convertString { public static void main(Strin ...

  4. 华为OJ:火车进站

    火车进站 给定一个正整数N代表火车数量,0<N<10,接下来输入火车入站的序列,一共N辆火车,每辆火车以数字1-9编号.要求以字典序排序输出火车出站的序列号. 输入描述: 有多组测试用例, ...

  5. Sql Server中三种字符串合并方法的性能比较

    文章来自:博客园-DotNet菜园 最近正在处理一个合并字符吕的存储过程,在一个测试系统的开发中,要使用到字符串合并功能,直接在Sql中做.示例:有表內容﹕名称  內容1     abc1      ...

  6. 在华为oj的两个月

    一次偶然的机会,我接触到华为oj平台(http://career-oj.huawei.com/exam/camLogin.jsp),当时的心情很是兴奋,于是立马注册开通,然后迫不及待地上去做题.刚开始 ...

  7. pl/sql学习(6): 引号/程序调试/列中的字符串合并/正则表达式

    有关自治事务的问题: https://www.cnblogs.com/princessd8251/p/4132649.html 我在plsql development学习中遇到的常见问题: (一) 引 ...

  8. 【SQL】SqlServer中Group By后,字符串合并

    参考: 1.SQL查询语句 group by后, 字符串合并 2.sql for xml path用法 #需求: 合并列值 表结构,数据如下: id value ----- ------ aa bb ...

  9. group by 字符串合并 有关问题

    group by 字符串合并 有关问题 group by 字符串合并 问题 如下表: TYPE NAME C123 张三 C189 李四 C123 王一 C123 丁丁 C189 刘某 查询出如下形式 ...

随机推荐

  1. 发现了一个制作iOS图标的利器

    我制作的第一个Swift Demo已经将近完工,今天的任务便是给它添加图标.不过Xcode中对图标尺寸的要求还真是严苛,若是制作iPhone和iPad通用的应用,总共需要12种尺寸的图标,这对于美工功 ...

  2. scjp考试准备 - 3 - 关于Arrays

    判断如下程序的最终输出值: import java.util.*; public class Quest{ public static void main(String[] args){ String ...

  3. 可综合风格的VerilogHDL模块实例

    1.赋值语句:assign{cout,sum}=a+b+cin; 2.利用电平敏感的always块设计组合逻辑电路 3.always块中如果含有局部变量,就必须在begin后加模块名,是必须加,同样的 ...

  4. Capacity Scheduler 队列设置

    先附一个官网地址 Capacity Scheduler是YARN中默认的资源调度器. 相关参数配置: 资源分配相关参数 ``` (1) capacity:队列的资源容量(百分比). 当系统非常繁忙时, ...

  5. windows下配置nodejs+npm

    windows下安装nodejs是比较方便的 (v0.6.0之后,支持windows native),进入官网http://nodejs.org/  点击install即可安装.下载完成后一路next ...

  6. Servlet主要的作用

    1,收集Request传递过来的参数: 2,把这些参数组织成模型需要的类型: 3,调用模型进行逻辑功能处理: 4,选择下一个页面,先准备好一个页面需要的数据,然后转向下一个页面.

  7. python 交换变量值

    在其他语言中,交换两个变量值的时候,可以这样写: temp = a a = b b = temp 在Python中,我们可以简单的这样写: a,b=b,a 实验如下: >>> a=1 ...

  8. AJAX三种返回值方式

    (一)TEXT方式 该方式返回的是拼接字符串,想要取到其中的值,需要先将返回值进行拆分 (二)JSON方式 该方式返回的是数组,想要取到其中的值,可用索引项进行提取 (三)XML方式 XML:可扩展标 ...

  9. 作用域+闭包+this理解

    函数预解析过程   函数会覆盖同名变量 也就是var  他的优先级高   如果是同名函数则后者覆盖前者   逐行解读代码的时候 表达式 和参数 会改变预解析仓库里面的值..也就是表达式能干掉函数   ...

  10. MyEclipse2015 编写js报 'Calculating completion proposals..' has encountered a problem.

    前言:编写js(按点后)弹出这个鬼东西,百度不到..估计是破解有问题.只有换版本了. 版本:MyEclipse 2015 stable 1.0 详细错误信息 解决:换成2.0版本