文章目录
- 1. 题目
- 2. 解题
1. 题目
描述
给定一个数字,在数字的任意位置插入一个5,使得插入后的这个数字最大
示例
样例 1:
输入: a = 234
输出: 5234
来源:https://tianchi.aliyun.com/oj/141758389886413149/160295184768372892
2. 解题
- 转成字符串处理,注意正负
class Solution {
public:/*** @param a: A number* @return: Returns the maximum number after insertion*/int InsertFive(int a) {// write your code herebool negative = a < 0;a = abs(a);string num = to_string(a);int ans = 0;if(!negative){bool insert = false;for(int i = 0; i < num.size(); i++){ // 非负数,找到第一个小于 5 的数字if(num[i] < '5'){num.insert(num.begin()+i, '5');insert = true;break;}}if(!insert)//没有插入过,放在末尾num += '5';}else{bool insert = false;for(int i = 0; i < num.size(); i++){ // 负数,找到第一个大于 5 的数字if(num[i] > '5'){num.insert(num.begin()+i, '5');insert = true;break;}}if(!insert)//没有插入过,放在末尾num += '5';}for(int i = 0; i < num.size(); ++i)ans = ans*10+num[i]-'0';//转成intif(negative)return -ans;return ans;}
};
50ms C++
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!