代码
#include<stdio.h>
int main(){
int i=0,j=0,res=0,n=0,k=0,p,d,l=0;
char c,x[5]={},a[20][20]={};
do{
scanf("%s",x);
if(x[k]=='0'||x[k]=='1'){
a[i][j]=x[k];
j++;
}
if(x[k+1]=='0'||x[k+1]=='1'){
a[i][j]=x[k+1];
j++;
}
if(x[k+2]=='0'||x[k+2]=='1'){
a[i][j]=x[k+2];
j++;
}
if(x[k+1]==']') {
i++;
d=j;
j=0;
}
if(x[k+4]=='0'||x[k+4]=='1'){
a[i][j]=x[k+4];
j++;
}
if(x[k+2]==']') {
p=i;
break;
}
}while(c=getchar()==' ');
for(i=0;i<p;i++){
for(j=0;j<d;j++){
if(a[i][j]=='1'){
printf("%d",p-i);
l=1;
break;
}
}
if(l==1) break;
}
return 0;
}
友情提示
1、实际输入格式是(eg.[[0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 1, 0],[0, 0, 1, 0, 1, 0],[0, 1, 1, 1, 1, 0],[1, 1, 1, 1, 1, 1]])。x数组用来暂时储存每次输入空格之前的字符串。前几个if语句是在按照实际输入格式选出1和0,赋给a数组。
2、p、d用来记录二维数组的行数和列数。
3、l作为标志,已有某行出现1的时候进行标记。
题目描述
城市天际线可以表示为二维列表,其中 1
表示建筑物。在下面的示例中,最高建筑物的高度为4(最右边的第二列)。
[[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0],
[0, 0, 1, 0, 1, 0],
[0, 1, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1]]
创建一个函数,输入城市天际线二维列表(0 和 1 的二维列表),并返回最高摩天大楼的高度。
输入输出格式
输入格式 输入一个数组,表示城市天际线;
输出格式 输出一个整数,表示最高摩天大楼的高度。
输入输出样例1
输入
[
[0, 0, 0, 0],
[0, 1, 0, 0],
[0, 1, 1, 0],
[1, 1, 1, 1]
]
输出
3
输入输出样例2
输入
[
[0, 1, 0, 0],
[0, 1, 0, 0],
[0, 1, 1, 0],
[1, 1, 1, 1]
]
输出
4