HDOJ 2054 A == B ?
来源:互联网 发布:a1431支持什么网络 编辑:程序博客网 时间:2024/04/29 05:48
超级传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2054
这道题坑特别多:
放几组数据:
// 均为YES0.0 0.00-0 0-0. +.00.1 00.104 4+1 1-1 -1.01.0 1.0+.020 00.02
代码如下(主要练习string的iterator):
#include <iostream>#include <fstream>using namespace std;void Redirect(ios &src, const ios &des){src.rdbuf(des.rdbuf());}int main(){#ifndef ONLINE_JUDGEconst ifstream inputFile("1.txt");Redirect(cin, inputFile);#endifstring a, b;size_t aPos, bPos;string::iterator bIter;string::reverse_iterator eIter;bool isPa, isPb;bool isRa, isRb;while (cin >> a >> b){aPos = bPos = 0;isRa = isRb = false;if (a.find(".") != string::npos)isRa = true;if (b.find(".") != string::npos)isRb = true;if (a[0] == '.')a.insert(0, "0");if (b[0] == '.')b.insert(0, "0");bIter = a.begin();if (a[0] == '+'){isPa = true;bIter = a.erase(bIter);}else if (a[0] == '-'){isPa = false;bIter = a.erase(bIter);}elseisPa = true;while (*bIter == '0'){bIter = a.erase(bIter);}eIter = a.rbegin();while (isRa && *eIter == '0'){string::iterator retIter = a.erase(--eIter.base());eIter = string::reverse_iterator(retIter);if (*eIter == '.'){a.erase(--eIter.base());break;}}bIter = b.begin();if (b[0] == '+'){isPb = true;bIter = b.erase(bIter);}else if (b[0] == '-'){isPb = false;bIter = b.erase(bIter);}elseisPb = true;while (*bIter == '0'){bIter = b.erase(bIter);}eIter = b.rbegin();while (isRb && *eIter == '0'){string::iterator retIter = b.erase(--eIter.base());eIter = string::reverse_iterator(retIter);if (*eIter == '.'){b.erase(--eIter.base());break;}}eIter = a.rbegin();if (*eIter == '.'){string::iterator retIter = a.erase(--eIter.base());}eIter = b.rbegin();if (*eIter == '.'){string::iterator retIter = b.erase(--eIter.base());}if (isPa != isPb && a != "" || a != b)cout << "NO" << endl;elsecout << "YES" << endl;}return 0;}
0 0
- HDOJ 2054 A == B ?
- HDOJ 2054 A == B ?
- hdoj 2054 A == B ? 【字符串】
- hdoj 2054 A == B ?
- hdoj.2054 A == B ? 20141027
- HDoj- 2054 A==B?
- hdoj-2054-A == B ?
- HDOJ A == B ?
- 20141001 【 高精度 】 hdoj 2054 A == B ?
- HDOJ 2054 A == B ?(大数比较)
- hdoj 2054 A == B ?【大数判断题】
- HDOJ-2054(大数比较)(A == B ?)
- HDOJ 2054 A == B ?(精确大数相等)
- HDOJ--1865 1string +HDOJ--2504 A==B? +Problem B
- [水题][第一阶段-回归水题][HDOJ-2054]A == B ?
- HDOJ 2054 A == B ?
- A+B(HDOJ)
- HDOJ-1228-A+B
- 开发自己的编程语言(一)
- Leetcode: Remove Duplicates from Sorted Array II
- JavaScript反射
- 判断整数序列是不是二元查找树的后序遍历结果
- Java选择排序算法
- HDOJ 2054 A == B ?
- 图片风格化
- 使用gmail发送邮件的Python脚本
- VS2010中NET4项目中使用LOG4NET办法
- C++Builder调用VC生成的DLL方法
- Oracle内部原理---undo篇
- 编程回忆之数据库回忆(oracle配置用户权限)
- Android 不同版本源码及ROM获取
- 翻页