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

1038 Recover the Smallest Number

在这里插入图片描述

idea

给出若干个可能含有前导0的数字串,将其进行拼接使其组成的数最小。
拼接串,想到借助string。
找最小,样例中的32,321, 3214尤为具备代表性,让字典序小的数尽可能靠前,联想到string的比较规则也是字典序
==>判断string字符串s1和s2的前后,需要比较的是它们拼接后形成的数值字典序最小
==>转化为比较s1+s2和s2+s1的字典序,则直接进行比较即可(stl库太香了!!!)

  • 注意1:格式问题。拼接所得的答案串记得去掉前导0,不要忽略样例明示
  • 注意2:边界值处理。给出的数字串非负,则存在全为0的可能。可以直接判断处理后的答案串是否除去前导0为长度为0,若是则直接输出0即可

solution1(测试点3,4不通过)

cmp函数有点问题

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
const int maxn = 1e4 + 10;
string s[maxn];bool cmp(string s1, string s2){for(int i = 0, j = 0; i < s1.size() && j < s2.size(); i++, j++){if(s1[i] != s2[j]) return s1[i] < s2[j];if(i == s1.size() - 1 && j < s2.size() - 1) i = 0;else if(i < s1.size() - 1 && j == s2.size() - 1) j = 0;} 
}int main(){int n;cin >> n;for(int i = 0; i < n; i++){cin >> s[i];}sort(s, s + n, cmp);for(int i = 1; i < n; i++){s[0] += s[i];}while(s[0].size() && s[0][0] == '0'){//删除前导0 s[0].erase(s[0].begin());}if(s[0].size()) cout << s[0];else cout << 0; return 0;
}

solution

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
const int maxn = 1e4 + 10;
string s[maxn];bool cmp(string s1, string s2){return s1 + s2 < s2 + s1;
}int main(){int n;cin >> n;for(int i = 0; i < n; i++){cin >> s[i];}sort(s, s + n, cmp);for(int i = 1; i < n; i++){s[0] += s[i];}while(s[0].size() && s[0][0] == '0'){//删除前导0 s[0].erase(s[0].begin());}if(s[0].size()) cout << s[0];else cout << 0; return 0;
}
http://www.lryc.cn/news/330241.html

相关文章:

  • 【Go】四、包名、访问范围控制、标识符、运算符
  • 达梦数据库日志文件管理
  • zookeeper 监控 与 JVM 设置
  • 【java】关于String、StringBuffer和StringBuilder的那些事
  • Spring 的 Ioc配置
  • 基于Java-SpringBoot+vue实现的前后端分离信息管理系统设计和实现
  • 用Python实现办公自动化(自动化处理PDF文件)
  • 银河麒麟操作系统Kylin Linux 离线安装Nginx1.21.5
  • ApiFox 使用教程
  • github拉取的项目添加至自己的仓库
  • ZooKeeper 的持久化机制
  • VS2022+QT5.9 提示找不到qtmain.lib
  • HTTP和HTTPS谁传输数据更安全?
  • 竞赛常考的知识点大总结(七)图论
  • NOSQL - Redis的简介、安装、配置和简单操作
  • 书生·浦语大模型开源体系(二)笔记
  • docker-compse安装es(包括IK分词器扩展)、kibana、libreoffice
  • Electron 读取本地配置 增加缩放功能(ctrl+scroll)
  • docker中配置交互式的JupyterLab环境的问题
  • SQLAlchemy 来查询并统计 MySQL 中 JSON 字段的一个值
  • HTTPS ECDHE 握手解析(计算机网络)
  • 在git上先新建仓库-把本地文件提交远程
  • Redis 过期删除策略
  • MySQL 锁合集与事务隔离级别
  • 题解 -- 第六届蓝桥杯大赛软件赛决赛C/C++ 大学 C 组
  • Lua脚本的使用
  • hcia datacom课程学习(5):MAC地址与arp协议
  • unbuntu mysql8.0新建用户及开启远程连接
  • Intel FPGA (1):线性序列机
  • 翻译: 硅谷软件工程师面试:准备所需的一切