列表

详情


NC222529. 图像识别

描述

如图所示,给你一个图像,图像内有一个由'*'画成的坐标轴,有一个'#'代表目标点。现在以二维矩阵的形式给你该图像,你能否求出'#'所在的位置的坐标是什么?

输入描述

第一行输入两个正整数
其后n行,每行一个长度为m的字符串,图像矩阵A,矩阵内'*'表示坐标轴,'#'表示目标点,'.'表示空保证目标点唯一且不在坐标轴上。

输出描述

输出两个整数x,y,代表目标点的坐标。

示例1

输入:

10 10
........*.
........*.
........*.
........*.
....#...*.
........*.
........*.
**********
........*.
........*.

输出:

-4 3

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Python3 解法, 执行用时: 124ms, 内存消耗: 12544K, 提交时间: 2022-11-12 19:25:35

n,m=map(int,input().split())

matrix=[]

for i in range(n):

    matrix.append(list(input()))

x=0

pos=0

ans=[0,0]

for i in range(n):

    if matrix[i].count('*')==m:

        x=i

    if '#' in matrix[i]:

        pos=i

ans[1]=x-pos

ans[0]=matrix[pos].index('#')-matrix[pos].index('*')

print(' '.join(list(map(str,ans))))

C++(clang++ 11.0.1) 解法, 执行用时: 50ms, 内存消耗: 452K, 提交时间: 2023-05-14 14:05:48

#include<iostream>

using namespace std;

int main()
{
	int n,m,a,b,x,y;
	cin>>n>>m;
	char c;
	for(int i=1;i<=n;i++)
    {
		for(int j=1;j<=m;j++)
        {
			cin>>c;
			if(c=='#')a=i,b=j;
			if(j==1&&c=='*')y=i;
			if(i==1&&c=='*')x=j;
		}
	}
	cout<<b-x<<" "<<y-a;
}

上一题