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

22睿抗省赛真题

跑团机器人

5865. 跑团机器人 - AcWing题库

根据加法和减法拆分字符串

知识点

1、字符串转数字

num1 = stoi(Str)

2、unordered_map转换成vector后再进行排序

unordered_map<int,int> toumap;

vector<pair<int,int>> vec(toumap.begin(), toumap.end());

3、在字符串里找某个字符

auto position = str.find('d');

if(position == str::npos){

        //代表没找到

}

完整代码

#include <bits/stdc++.h>
using namespace std;unordered_map<int,int> toumap;vector<char> vecChar;
vector<vector<int>> calVec(100000);	//【0】为min, 【1】为max 
int cnt=0;void calNum(string str){int num1=0, num2=0;auto position = str.find('d');if(position == string::npos){//单个数字num1 = stoi(str);num2=num1;calVec[cnt].push_back(num1);calVec[cnt].push_back(num1);}else{if(position==0){num1=1;num2=stoi(str.substr(1,str.length()-1));}else{num1 = stoi(str.substr(0,position));num2 = stoi(str.substr(position+1, str.length()-position-1));
//			cout << position << endl;}toumap[num2]+=num1;calVec[cnt].push_back(num1);calVec[cnt].push_back(num2*num1);}cnt++;//	cout << num1 << " " << num2 << endl;//num1个num2面 
}int main(){string s;cin >> s;int len = s.length();int start=0;for(int i=0;i<len;i++){if(s[i]=='+' || s[i]=='-' || i==len-1){if(s[i]=='+'||s[i]=='-'){vecChar.push_back(s[i]);	//符号压栈 }string tem;if(i!=len-1){tem = s.substr(start, i-start);}else{tem = s.substr(start, i-start+1);}
//			cout << tem << endl;calNum(tem);start += i-start+1;	//数组长度 }}vector<pair<int,int>> vec(toumap.begin(), toumap.end());//对vector进行排序
//	sort(vec.begin(), vec.end(),[](const pair<int,int> &a, const pair<int,int> &b){
//		return a.second<b.second;
//	});sort(vec.begin(), vec.end());for(const auto& pair:vec){cout << pair.first << " " << pair.second << endl;} 
//	cout << endl;int numSize=cnt;int operSize=vecChar.size();
//	cout << numSize << " " << operSize << endl;//	for(int i=0;i<numSize;i++){
//		cout << calVec[i][0] << " " << calVec[i][1] << endl;
//	}long long minRe=0, maxRe=0;int k=1;minRe += calVec[0][0];maxRe += calVec[0][1];for(int i=0;i<operSize;i++){if(vecChar[i]=='+'){minRe += calVec[k][0];maxRe += calVec[k][1];}else if(vecChar[i]=='-'){minRe -= calVec[k][1];maxRe -= calVec[k][0];}k++;}cout << minRe << " " << maxRe;return 0;
}

相关文章:

  • 电脑重装或者开机出现错误
  • 【Oracle】TCL语言
  • Maestro CLI云端测试以及github cl,bitrise原生cl的测试流程
  • 截面动量策略思路
  • javaweb-maven以及http协议
  • 【Linux系列】Linux/Unix 系统中的 CPU 使用率
  • 【数据治理】要点整理-信息技术数据质量评价指标-GB/T36344-2018
  • 【shell】让 CPU 运行到满负荷状态
  • 家用和类似用途电器的安全 第1部分:通用要求 与2005版差异(7)
  • Vue 3 中ref 结合ts 获取 DOM 元素的实践指南。
  • 数据结构:时间复杂度(Time Complexity)和空间复杂度(Space Complexity)
  • 131. 分割回文串-两种回溯思路
  • 命令行式本地与服务器互传文件
  • 5G-A:开启通信与行业变革的新时代
  • Jmeter requests
  • 通过mqtt 发布温湿度
  • hot100 -- 1.哈希系列
  • AI炼丹日志-26 - crawl4ai 专为 AI 打造的爬虫爬取库 上手指南
  • 第三方软件评测机构如何助力软件品质提升及企业发展?
  • Baklib知识中台驱动服务升级
  • 有个网站做字的图片/北京今日重大新闻
  • 在浴室里做的网站/app推广怎么联系一手代理
  • 怎样用虚拟主机建网站/手机百度识图网页版入口
  • 文化网站建设方案/网站建设一般多少钱
  • 宁夏考试教育网站/企业站seo外包
  • discuz做商城网站/营销型网站建设解决方案