当前位置: 首页 > news >正文

牛客:HJ26 字符串排序[华为机考][map]

学习要点

  1. multimap.equal_range

题目链接

        字符串排序_牛客题霸_牛客网

题目描述

解法:multimap

#include <bits/stdc++.h>
#include <cctype>
#include <iostream>
#include <unordered_map>
using namespace std;int main() {string line_big_str;getline(cin,line_big_str);multimap<char,vector<int>> ch_bool_pos_map;vector<char> ret_ch(line_big_str.size(),'a');for(int i = 0;i<line_big_str.size();i++){if(islower(line_big_str[i])){// 构造值数组vector<int> tv;tv.push_back(1); tv.push_back(i);// 构造键值对:小写字母ch_bool_pos_map.insert({line_big_str[i],tv});}else if(isupper(line_big_str[i])){// 构造值数组vector<int> tv;tv.push_back(0); tv.push_back(i);// 构造键值对:大写字母ch_bool_pos_map.insert({tolower(line_big_str[i]),tv});}else {// 确定非字母字符位置ret_ch[i] = line_big_str[i];}}// 写入ret_chvector<char> t_ret;for(char ch = 'a';ch<='z';ch++){auto it1 = ch_bool_pos_map.find(ch);if(it1 == ch_bool_pos_map.end()){continue;}else{// 构造单桶mapauto it2 = ch_bool_pos_map.equal_range(ch);map<int,char> zi_map;for(auto i = it2.first;i != it2.second;i++){zi_map[i->second[1]] = i->second[0] == 1 ? ch : toupper(ch);}// 填入t_retfor(auto& i: zi_map){t_ret.push_back(i.second);}}}// 写入ret_chfor(int i = ret_ch.size() -1;i>=0;i--){if(ret_ch[i] != 'a')continue;ret_ch[i] = t_ret.back();t_ret.pop_back();}// 开始打印for(auto& i: ret_ch){cout << i;}
}// 64 位输出请用 printf("%lld")

http://www.lryc.cn/news/590078.html

相关文章:

  • 3d max 图片(参考图)的导入
  • 设计模式—初识设计模式
  • Java大厂面试实录:从Spring Boot到AI大模型的深度技术拷问
  • iOS App 上架流程优化指南 工具组合与常见问题处理经验总结
  • C语言:第07天笔记
  • Ubuntu中man手册不全解决以及man手册中英文切换方法
  • pyJianYingDraft 在 import_srt 字幕添加花字效果
  • 海康线扫相机通过采集卡的取图设置
  • WSL2更新后Ubuntu 24.04打不开(终端卡住,没有输出)
  • 【中文核心期刊推荐】《激光与红外》
  • db.refresh()的重复使用和db.rollback()
  • 随机链表的复制数据结构oj题(CM11)
  • Python练习(4)Python参数传递的20道核心实战练习题(含答案与深度解析)(上)
  • BNN 技术详解:当神经网络只剩下 +1 和 -1
  • 《精华离散制造智能工厂三年规划》81页PPT
  • Git分支管理完全指南:从创建到合并与冲突解决
  • 关于redis各种类型在不同场景下的使用
  • 基于 Python/PHP/Node.js 的淘宝 API 商品数据抓取开发教程
  • django安装、跨域、缓存、令牌、路由、中间件等配置
  • .env文件的配置
  • 搭建云途YTM32B1MD1芯片VSCODE+GCC + Nijia + Cmake+Jlink开发环境
  • python的慈善捐赠平台管理信息系统
  • 将URL地址最后一段中文内容进行URL编码
  • Harmony-Next鸿蒙实战开发项目-仿小米商城App----V2
  • 【18】MFC入门到精通——MFC(VS2019)+ OpenCV 显示图片的3种方法
  • Kotlin集合聚合
  • Maple2025 软件安装教程(Win版)
  • nerdctl - 兼容 Docker 语法 的 containerd 命令行界面
  • Egg.js × NestJS 2025 Nodejs后端框架选型指南
  • 交易日历接口api,股票/板块日,周,月K线行情接口api,情绪周期api,Level2实时数据api