东华OJ-基础题-104-A == B ?(C++)

  • 问题描述
    给你两个非负实数A和B,如果A等于B,输出 "YES", 否则输出"NO"
  • 输入说明
    第一行N,表示有N组测试数据。

以下N行,每行两个非负实数 A和B。每个实数不超过1000位,且可能在前面和后面有0存在。

  • 输出说明
    对于每组测试数据,如果A和B相等则输出 "YES", 否则输出 "NO"。

每组测试数据占一行,两组测试数据之间无空行。行首与行尾均无空格。

  • 输入范例
cpp 复制代码
2
100.0 00100
0100.1234576 00000000100.123457
  • 输出范例
cpp 复制代码
YES
NO

感想:substr()切割字符串,使用find_first_not_of() find_last_not_of()
代码如下:

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

// 标准化实数字符串:消除前导0、后导0、多余小数点
string normalize(string s) {
    // 步骤1:处理小数点,拆分整数部分和小数部分
    auto dot_pos = s.find('.');
    string integer_part = s.substr(0, dot_pos);
    string decimal_part = (dot_pos != string::npos) ? s.substr(dot_pos + 1) : "";

    // 步骤2:移除整数部分的前导0(保留单个0,如"000"→"0")
    auto first_non_zero = integer_part.find_first_not_of('0');
    if (first_non_zero != string::npos) {
        integer_part = integer_part.substr(first_non_zero);
    } else {
        integer_part = "0"; // 整数部分全0,保留一个0
    }

    // 步骤3:移除小数部分的后导0
    if (!decimal_part.empty()) {
        auto last_non_zero = decimal_part.find_last_not_of('0');
        if (last_non_zero != string::npos) {
            decimal_part = decimal_part.substr(0, last_non_zero + 1);
        } else {
            decimal_part = ""; // 小数部分全0,清空
        }
    }

    // 步骤4:拼接结果(无小数部分则不加小数点)
    if (decimal_part.empty()) {
        return integer_part;
    } else {
        return integer_part + "." + decimal_part;
    }
}

int main() {
    int n;
    cin>>n;
    string arr[n][2];
    for(int i = 0; i<n; ++i) {
        cin>>arr[i][0]>>arr[i][1];
        if(normalize(arr[i][0]) == normalize(arr[i][1]))
            cout<<"YES"<<endl;
        else
            cout<<"NO"<<endl;
    }
    return 0;
}
相关推荐
韶博雅32 分钟前
emcc24ai
开发语言·数据库·python
yongui478341 小时前
C# 与三菱PLC通讯解决方案
开发语言·c#
2501_933329551 小时前
技术架构深度解析:Infoseek舆情监测系统的全链路设计与GEO时代的技术实践
开发语言·人工智能·分布式·架构
Tong Z1 小时前
常见的限流算法和实现原理
java·开发语言
凭君语未可1 小时前
Java 中的实现类是什么
java·开发语言
wearegogog1231 小时前
离散系统参数辨识与广义预测控制MATLAB实现
开发语言·matlab
史迪仔01121 小时前
[QML] QML IMage图像处理
开发语言·前端·javascript·c++·qt
还在忙碌的吴小二2 小时前
Harness 最佳实践:Java Spring Boot 项目落地 OpenSpec + Claude Code
java·开发语言·spring boot·后端·spring