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

牛客: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.xdnf.cn/news/15536.html

相关文章:

  • 暑期算法训练.2
  • ArcGISPro应用指南:使用ArcGIS Pro创建与优化H3六边形网格
  • PHP 社区正在讨论变更许可证,预计 PHP 9.0 版本将完全生效
  • 基于MATLAB的决策树DT的数据分类预测方法应用
  • 【Unity】Mono相关理论知识学习
  • SQL中对字符串字段模糊查询(LIKE)的索引命中情况
  • 第3章 Excel表格格式设置技巧
  • Win11专业工作站版安装配置要求
  • [NOIP][C++] 树的重心
  • Word 文档合并利器:基于 org.docx4j 的 Java 实现全解析
  • Java线程创建与运行全解析
  • GraphQL与REST在微服务接口设计中的对比分析与实践
  • Windows 启动后桌面黑屏,其他程序正常运行
  • Java接口:小白如何初步认识Java接口?
  • 一点点dd
  • WPF 加载和显示 GIF 图片的完整指南
  • 聚焦AI与物流核心技术:2025智慧物流论坛及长三角快递物流展会9月上海开幕
  • API Gateway HTTP API 控制客户端访问 IP 源
  • CSV 字段映射小工具 Demo
  • Thymeleaf 基础语法与标准表达式详解
  • 安全初级作业2
  • Linux LVS集群技术详解与实战指南
  • 测试工作中的质量门禁管理
  • HTML基础P1 | HTML基本元素
  • 【游戏引擎之路】登神长阶(十九):3D物理引擎——岁不寒,无以知松柏;事不难,无以知君子
  • 【uni-ui】hbuilderx的uniapp 配置 -小程序左滑出现删除等功能
  • Django+Celery 进阶:Celery可视化监控与排错
  • 健康生活,从细节开始
  • Linux运维常用命令大全
  • JS的防抖与节流