题目:
六一儿童节就要到了,晨晨的学校进行游园活动,其中一个游戏为填字游戏,规则为: 有一个 R 行 C 列的棋盘(2≤R,C≤25),棋盘上的每一个格子要么是空的,可以填一个十 进制数字;要么是堵上的,以字符“#” 表示(即不能填东西)。棋盘中从左往右连续的 数字排列可视为一个十进制整数。 现在给你一个已填好的棋盘,请你帮忙找出棋盘里面最小的整数。
输入
第一行:包括两个数,R 和 C(2≤R,C≤25),表示 R 行 C 列。 接着 R 行中每行包括 C 个字符,这些字符要么是数字,要么是“#”。输入数据保证存 在解,不存在前导 0 的情况(例如:01,002)。
输出
棋盘中最小的整数。
样例输入 Copy
3 6
3#5789
897#51
163#31
样例输出 Copy
3
提示
数据范围:
对于 60%的数据,2≦R,C≦5;
对于 80%的数据,2≦R,C≦18;
对于 100%的数据,2≦R,C≦25;
代码:
#include<bits/stdc++.h>
using namespace std;
int r,c;
string a,s,sum="99999999999999999999999999";
int main() {
cin>>r>>c;
for(int i=0;i<r;i++)
{
cin>>a;a+='#';
for(int i=0;i<a.size();i++)
{
if(a[i]!='#')s=s+a[i];
else
{
//cout<<s<<" "<<s.size()<<" "<<sum<<" "<<sum.size()<<endl;
if(s.size()<sum.size()&&s>="1" || s.size()==sum.size()&&s<sum&&s>="0")sum=s;
s="";
//cout<<s<<" "<<s.size()<<" "<<sum<<" "<<sum.size()<<endl;
}
}
}
cout<<sum;
return 0;
}
WA91,还有什么点我没有想到吗