东华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;
}
相关推荐
端平入洛2 天前
delete又未完全delete
c++
端平入洛3 天前
auto有时不auto
c++
郑州光合科技余经理4 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1234 天前
matlab画图工具
开发语言·matlab
dustcell.4 天前
haproxy七层代理
java·开发语言·前端
norlan_jame4 天前
C-PHY与D-PHY差异
c语言·开发语言
哇哈哈20214 天前
信号量和信号
linux·c++
多恩Stone4 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc
QQ4022054964 天前
Python+django+vue3预制菜半成品配菜平台
开发语言·python·django
遥遥江上月4 天前
Node.js + Stagehand + Python 部署
开发语言·python·node.js