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

MarsCode--大数和距离【中等】

问题描述

有两个超大字符串数,问它们的和得到的字符串中的最大数和最小数之间相差多少位?如果都是一样的数则位数为 0,如果有多个数,则取符合条件的最小值。

输入格式

  • 第一行是一个字符串数

  • 第二行是一个字符串数

输出格式

  • 最大数和最小数之间的位数

输入样例(1)

111

222

输出样例(1)

0

输入样例(2)

111

34

输出样例(2)

1

数据范围

  • 两数都为非 0 的正整数
#include <iostream>
#include <string>
#include<algorithm>
#include<math.h>
#include<climits>
using namespace std;bool areAllSameDigits(const std::string& str) {// 检查字符串是否为空if (str.empty()) {return false; // 可以根据具体需求选择是否允许空字符串}char firstChar = str[0]; // 取第一个字符for (char ch : str) {if (ch != firstChar) {return false; // 只要有一个字符不同,就返回 false}}return true; // 所有字符都相同,返回 true
}long long fun(string s)
{//先把数字放入数组当中,找到最大值和最小值vector<int>v;vector<int>v1;//存放最小值的下标vector<int>v2;//存放最大值的下标vector<int>ans;if (areAllSameDigits(s))return 0;for (auto i : s){v.push_back(i + '0');}auto min = min_element(v.begin(), v.end());auto max = max_element(v.begin(), v.end());for (int i = 0;i < v.size();i++){if (v[i] == *min)v1.push_back(i);}for (int i = 0;i < v.size();i++){if (v[i] == *max)v2.push_back(i);}for (int i = 0;i < v1.size();i++){for (int j = 0;j < v2.size();j++){ans.push_back(abs(v1[i] - v2[j]) - 1);}}sort(ans.begin(), ans.end());return ans[0];
}long long solution(std::string a, std::string b) {// Please write your code here//首先进行二进制求和string result; // 返回的结果字符串int carry = 0;//进位int i = a.length() - 1; // 下标int j = b.length() - 1; // 下标while (i >= 0 || j >= 0 || carry != 0) {int sum = carry;if (i >= 0) {sum +=a[i--] - '0'; // 数字+字符‘0’[在计算机中以ASCII码存储]==字符}if (j >= 0) {sum += b[j--] - '0';}result.push_back(sum % 10+ '0'); // 缝2进一carry = sum / 10;                 // 如果sum是2就+1到下一位}reverse(result.begin(), result.end()); // 反转return fun(result);}int main() {//  You can add more test cases herestd::cout << (solution("111", "222") == 0) << std::endl;std::cout << (solution("111", "34") == 1) << std::endl;std::cout << (solution("5976762424003073", "6301027308640389") == 6) << std::endl;return 0;
}

http://www.mrgr.cn/news/49363.html

相关文章:

  • 基于Android的小型冷库管理系统(论文+源码)-kaic
  • 第二讲、C语言的常量和变量
  • 双向广搜 [NOIP2002 提高组] 字串变换————洛谷p1032
  • 基于单片机的 16 键多功能电子琴硬件设计
  • types.MethodType
  • 使用dotnet-counters和dotnet-dump 分析.NET Core 项目内存占用问题
  • Nodejs+Vue菜鸟驿站仓库管理系统的设计与实现 (论文+源码)-kaic
  • 使用 Python 爬虫批量下载百度图片的详细教程
  • C++:模拟stack、queue
  • 【机器学习】深入浅出讲解贝叶斯分类算法
  • 2024年OpenAI开发者大会:开拓AI新时代
  • finebi的20个面试题
  • 初识C语言:数据类型、运算符与表达式
  • Python使用pip安装install模块时指定默认源以及FastApi自定义接口文档/docs中的静态资源文件
  • Edge TTS
  • 架构设计笔记-15-面向服务架构设计理论与实践
  • 【WPF】中ListBox的ListBox选项的选中状态在弹出MessageBox后失效的解决办法
  • 数据结构之旅(顺序表)
  • 基础sql
  • Harmony开发基础