字符串合并处理(牛客)

2023-05-16

题目描述:

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

详细描述:

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

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

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

输入:输入两个字符串

dec fab

输出描述:输出转化后的结果

5D37BF

做题思路:

  •  首先,合并成一个字符串s
  •  遍历s,下标为偶数的字符放到名为even的vector当中,下标为奇数的放到名为odd的vector当中
  •  利用sort对两个vector进行排序
  •  对于单个字符,使用isalpha和isdigit判断是否为字母或数字,如果是,就对其进行转换,switch直接一一对应就好了,不用再自己去考虑如何转换为8421码再颠倒。
  • 对排序好的odd和even交叉着对字符进行转换并输出即可

AC代码:

#include<iostream>
#include<string>
#include<vector>
#include<cctype>
#include<algorithm>
using namespace std;

char transC(char c);
int main()
{
	string s1,s2;
	
	while( cin>>s1>>s2 ){
		string s = s1+s2;
	
		vector<char> even; //记录下标为偶数的字符
		vector<char> odd; //记录下标为奇数的字符 
		
		for(int i=0; i<s.size(); i++){
			if( i%2==0 ){
				even.push_back(s[i]); 
			}else{
				odd.push_back(s[i]);
			}
		}
		
		sort(odd.begin(),odd.end());
		sort(even.begin(),even.end());
		
		int len = odd.size()<even.size()?odd.size():even.size();  //找出两者之间更短的那个
		for(int i=0; i<len; i++){
			cout<<transC(even[i])<<transC(odd[i]);
		} 
		if( odd.size()<even.size() ){
			cout<<transC(even[even.size()-1]);
		}
		if( odd.size()>even.size() ){
			cout<<transC(odd[odd.size()-1]);
		}
        cout<<endl;
	}
	
	return 0;
} 
char transC(char c)
{
	if( isdigit(c)||isalpha(c) ){
		switch(c){
			case '0': c='0'; break;
			case '1': c='8'; break;
			case '2': c='4'; break;
			case '3': c='C'; break;
			case '4': c='2'; break;
			case '5': c='A'; break;
			case '6': c='6'; break;
			case '7': c='E'; break;
			case '8': c='1'; break;
			case '9': c='9'; break;
			case 'A': case 'a': c='5'; break;
			case 'B': case 'b': c='D'; break;
			case 'C': case 'c': c='3'; break;
			case 'D': case 'd': c='B'; break;
			case 'E': case 'e': c='7'; break;
			case 'F': case 'f': c='F'; break;
			default: break;
		}
	}
	return c;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

字符串合并处理(牛客) 的相关文章

  • 微信小程序性能优化

    文章目录 小程序优化首屏加载优化白屏优化运行时性能渲染性能优化页面切换优化 小程序优化 首屏加载优化 删除无用代码 资源文件 开启按需加载组件 span class token comment app json span span clas
  • webStorage

    cookie 在webStorage出现之前在浏览器端存储数据通常使用cookie cookie是某些网站为了辨别用户身份 xff0c 进行Session跟踪而储存在用户本地终端上的数据 xff08 通常经过加密 xff09 xff0c 由
  • alembic 命令的使用

    初始化 alembic init alembic 查看历史head alembic span class token function history span span class token operator span span cla
  • centos 6 镜像源不再可用

    2020 12 02 centos 停止更新centos 6 xff0c 官网镜像源不可用 http mirror centos org centos 6 6 readme This directory and version of Cen
  • Linux安装配置vnc

    1 检测 vnc有没有安装 rpm qa grep tigervnc 或 rpm qa grep vnc 显示如下信息 xff0c 证明 vnc已经安装 1 1 若未安装 xff0c 安装步骤如下 1 1 1 cd 到 vnc 安装包目录下
  • shell变量的五种赋值方式

    shell变量的赋值https blog 51cto com u 14881361 2673174 一 直接赋值 格式为 xff1a 变量名 61 变量值 x1f416 直接赋值时禁止在 等号 61 两端添加空格 span class to
  • CommonJS和ES6模块化的区别

    ES6 模块与 CommonJS 模块存在以下差异 xff1a 1 语法上 CommonJS 使用的是 module exports 61 导出一个模块对象 xff0c require file path 引入模块对象 xff1b ES6使
  • bug解决: Cause: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 6; 不允许有匹配 “[xX][mM][lL]“ 的

    Exception encountered during context initialization span class token operator span cancelling refresh attempt span class
  • 云计算基础

    待到秋来九月八 xff0c 我花开后百花杀 数据中心发展阶段企业自建EDCIDC托管 租用云计算三者对比 云计算核心特征云计算参考模型云计算的关键特点按需服务资源池化弹性扩展泛网络访问服务可度量 云计算服务模式云计算技术架构云计算的4个部署
  • 前端npm或yarn装包踩坑——安装超时失败,设置镜像源不生效

    问题描述 xff1a 使用npm或yarn进行安装依赖包时 xff0c 无响应超时 xff0c 随即设置镜像源指向淘宝镜像 xff0c 但始终不生效 问题原因 xff1a 无响应 网络等原因 xff0c 导致npm或yarn装包失败 xff
  • Ubuntu中安装ClamAV防病毒软件

    环境 Ubuntu 16 04 软件安装 ClamAV http www clamav net documents installing clamav 源码链接 http www clamav net downloads productio
  • 使用Windows远程桌面工具来远程连接控制Ubuntu系统

    转载来源 xff1a 使用Windows远程桌面工具来远程连接控制Ubuntu系统 xff1a http www safebase cn article 258275 1 html 介绍 有时需要在实际的电脑上安装Ubuntu的操作系统来搭
  • 软件工程简答题和应用题

    1 简述软件工程过程的含义 目的以及包含的子过程 2 数据字典的作用是什么 xff0c 它有哪些条目 xff1f 3 简述结构化程序设计方法的基本要点 4 简述原型的开发步骤 5 什么是需求规约 xff1f 简述需求规约的基本性质 答 xf
  • MFC用对话框获取输入

    题目 在MFC调用对话框读入数据 xff0c 并在客户区输出 这是 计算机图形学基础教程 的一个习题 xff1a 使用MFC设计一个长方形类CRectangle xff0c 调用对话框读入长方形的长度和宽度 xff0c 在客户区输出长方形的
  • openssl 命令行 sm4 加解密

    sms4 算法标准数据实例 密钥 xff1a 0123456789abcdeffedcba9876543210 明文 xff1a 0123456789abcdeffedcba9876543210 密文 xff1a 681edf34d2069
  • 计算一个神经网络的输出(Computing a Neural Network's output)

    计算一个神经网络的输出 xff08 Computing a Neural Network s output xff09 Note 在编程实现一个神经网络的时候 xff0c 有一个注意点就是我们要记得保存每一步计算出来的 z z z 和 a
  • L2正则化(Regularization)

    正则化 xff08 Regularization xff09 深度学习可能存在过拟合问题 高方差 xff0c 有两个解决方法 xff0c 一个是正则化 xff0c 另一个是准备更多的数据 xff0c 这是非常可靠的方法 xff0c 但你可能
  • OpenCV--图像转化为灰度图、HSV图

    OpenCV 图像转化为灰度图 HSV图 一 灰度图 以下介绍转载自 xff1a https www cnblogs com xiejiulong p 3821620 html 图像灰度值的概念是什么 xff1f 灰度也可以认为是亮度 xf
  • python -- 定义函数 def 后面的 ->,:表示的含义

    python 定义函数 def 后面的 gt xff0c xff1a 表示的含义 gt 常常出现在python函数定义的函数名后面 xff0c 为函数添加元数据 描述函数返回的类型 表示参数的类型建议符 示例 xff1a span clas
  • 解决QT 编译QWebEngineWidgets出现错误Project ERROR: Unknown module(s) in QT: webenginewidgets问题

    解决QT 编译QWebEngineWidgets出现错误Project ERROR Unknown module s in QT webenginewidgets问题 1 确认你的QT版本号为QT5 4 43 xff0c 在此之后的版本Qt

随机推荐

  • C++ 类中特殊成员变量(常量、静态、引用)的初始化方法

    有些成员变量的数据类型比较特别 xff0c 它们的初始化方式和普通数据类型的成员变量有所不同 这些特殊类型的数据类型包括 xff1a 引用 xff08 amp xff09 常量 xff08 const xff09 静态 xff08 stat
  • 自编码器(AutoEnconders:AE)解释

    概述 自编码器是一种能够通过无监督学习 xff0c 学到输入数据高效表示的神经网络 输入数据的这一高效表示 xff08 特征 xff09 称为编码 xff08 Codings xff09 xff0c 其维度一般远小于输入数据 xff0c 使
  • Model-Agnostic Meta-Learning (MAML)模型介绍及算法详解

    整理自 xff1a Frank Tian 回答 首先 xff0c 我们先从Meta Learning的概念说起 原始的机器学习的流程被认为是下面这这样的 xff1a 也就是我们根据我们先验知识设计网络架构和参数初始化方法 xff0c 从Tr
  • Django的STATIC_URL、STATIC_ROOT、STATICFILES_DIRS、MEDIA_URL、MEDIA_ROOT意义、设置和使用

    以下经验是在Django2 1 1及Python3 5环境下 xff08 项目目录结构见结尾 xff09 1 STATIC ROOT 首先 xff0c 要有Django的开发模式和部署模式的概念 xff08 目前知道有这种东西就行 xff0
  • CSDN的富文本编辑器的自动保存说明

  • powershell中 find 命令报参数格式不正确

    在cmd命令行中查看本地网络连接数 netstat ant find C 34 192 34 注意必须加上引号 xff0c 否则包参数格式不正确 同样的命令在powershell 重执行报参数格式不正确 因为在powershell中使用带双
  • 识别有效的IP地址和掩码进行分类统计(牛客)

    题目描述 xff1a 请解析IP地址和对应的掩码 xff0c 进行分类识别 要求按照A B C D E类地址归类 xff0c 不合法的地址和掩码单独归类 所有的IP地址划分为 A B C D E五类 A类地址1 0 0 0 126 255
  • 整数与IP地址间的转换(牛客)

    题目描述 xff1a 原理 xff1a ip地址的每段可以看成是一个0 255的整数 xff0c 把每段拆分成一个二进制形式组合起来 xff0c 然后把这个二进制数转变成 一个长整数 举例 xff1a 一个ip地址为10 0 3 193 每
  • C++中的qsort、sort排序

    注意 xff1a int char string之类的是可以之间使用 gt lt 61 61 之类的进行判断 xff0c char 类型的使用strcmp就行了 而struct与vector都可以当做数组进行处理 xff0c cmp函数传递
  • 迷宫问题(牛客)

    题目描述 xff1a 定义一个二维数组N M xff08 其中2 lt 61 N lt 61 10 2 lt 61 M lt 61 10 xff09 xff0c 如5 5数组下所示 xff1a int maze 5 5 61 0 1 0 0
  • 查找兄弟单词(牛客)

    题目描述 xff1a 兄弟单词 xff1a 给定一个单词X xff0c 如果通过任意交换单词中字母的位置得到的新的单词Y xff0c 那么称X和Y是兄弟单词 注意 xff1a bca和abc是兄弟单词 xff0c abc和abc是相同单词
  • 合唱团(牛客)

    题目描述 xff1a 计算最少出列多少位同学 xff0c 使得剩下的同学排成合唱队形 说明 xff1a N位同学站成一排 xff0c 音乐老师要请其中的 N K 位同学出列 xff0c 使得剩下的K位同学排成合唱队形 合唱队形是指这样的一种
  • 字符串排序(牛客)

    题目描述 xff1a 编写一个程序 xff0c 将输入字符串中的字符按如下规则排序 规则 1 xff1a 英文字母从 A 到 Z 排列 xff0c 不区分大小写 如 xff0c 输入 xff1a Type 输出 xff1a epTy 规则
  • 字符串加密(牛客)

    题目描述 xff1a 有一种技巧可以对数据进行加密 xff0c 它使用一个单词作为它的密匙 下面是它的工作原理 xff1a 首先 xff0c 选择一个单词作为密匙 xff0c 如TRAILBLAZERS 如果单词中包含有重复的字母 xff0
  • 统计每个月兔子的总数(牛客)

    题目描述 xff1a 有一只兔子 xff0c 从出生后第3个月起每个月都生一只兔子 xff0c 小兔子长到第三个月后每个月又生一只兔子 xff0c 假如兔子都不死 xff0c 问每个月的兔子总数为多少 xff1f 输入描述 xff1a 输入
  • 购物单(牛客)(01背包+分组背包+有依赖的背包)

    题目描述 xff1a 王强今天很开心 xff0c 公司发给N元的年终奖 王强决定把年终奖用于购物 xff0c 他把想买的物品分为两类 xff1a 主件与附件 xff0c 附件是从属于某个主件的 xff0c 下表就是一些主件与附件的例子 xf
  • gmssl 生成SM2证书、加密、解密、签名、验签

    1 生成SM2密钥对 gmssl ecparam genkey name sm2p256v1 out sm2keypair pem text 2 查看SM2密钥对 gmssl ec in sm2keypair pem text 3 生成自签
  • 求小球落地5次后所经历的路程和第五次反弹的高度(牛客)

    题目描述 xff1a 假设一个球从任意高度自由落下 xff0c 每次落地后反跳回原高度的一半 再落下 求它在第5次落地时 xff0c 共经历多少米 第5次反弹多高 xff1f 最后的误差判断是小数点6位 输入描述 xff1a 输入起始高度
  • 输入一行字符,分别统计出包含英文字符、空格、数字和其他字符的个数(牛客)

    题目描述 xff1a 输入一行字符 xff0c 分别统计出包含英文字母 空格 数字和其它字符的个数 输入描述 xff1a 输入一行字符串 xff0c 可以有空格 1qazxsw23 edcvfr45tgbn hy67uj m ki89ol
  • 字符串合并处理(牛客)

    题目描述 xff1a 按照指定规则对输入的字符串进行处理 详细描述 xff1a 将输入的两个字符串合并 对合并后的字符串进行排序 xff0c 要求为 xff1a 下标为奇数的字符和下标为偶数的字符分别从小到大排序 这里的下标意思是字符在字符