HDU——2054 A == B ?
2009-05-06 04:02 Logic0 阅读(1192) 评论(0) 编辑 收藏 举报http://acm.hdu.edu.cn/showproblem.php?pid=2054
说实话是道比较考验对库函数熟悉度的问题。
通过这个问题发现自己在某些函数的应用上还存在不少问题。
最汗颜的就是,居然不知道string.erase(iterator i),之后i自增1的!导致删除总不干净。
简单题,对库函数熟悉的话代码很短。由于题意很模糊,而且例子也很弱,所以很多人估计走了弯路,成功率11%多点。
CODE:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void del_0_after_point(char *s)
{
int len = strlen(s);
char *p = s+len-1;
if(strchr(s,'.'))
while(*p =='0')
*p-- = '\0';
if(*p == '.')
*p = '\0';
}
int main()
{
char a[100024],b[100024];
char *a_x,*b_x;
while(scanf("%s%s",a,b) != EOF)
{
a_x = a;
b_x = b;
while(*a_x == '0')
a_x ++;
while(*b_x == '0')
b_x ++;
del_0_after_point(a);
del_0_after_point(b);
puts(strcmp(a_x,b_x)==0?"YES":"NO");
}
return 0;
}
换成了纯C的代码,不好意思用STL丢人。
有助于扎实基础的好题!