华为OD机试统一考试D卷C卷 - 找单词

题目描述

给一个字符串和一个二维字符数组,如果该字符串存在于该数组中,则按字符串的字符顺序输出字符串每个字符所在单元格的位置下标字符串,如果找不到返回字符串“N”。

1.需要按照字符串的字符组成顺序搜索,且搜索到的位置必须是相邻单元格,其中“相邻单元格”是指那些水平相邻或垂直相邻的单元格。

2.同一个单元格内的字母不允许被重复使用。

3.假定在数组中最多只存在一个可能的匹配。

输入描述

第1行为一个数字N指示二维数组在后续输入所占的行数。

第2行到第N+1行输入为一个二维大写字符数组,每行字符用半角,分割。

第N+2行为待查找的字符串,由大写字符组成。

二维数组的大小为N*N,0<N<=100。

单词长度K,0<K<1000。

输出描述

输出一个位置下标字符串,拼接格式为:第1个字符行下标+”,”+第1个字符列下标+”,”+第2个字符行下标+”,”+第2个字符列下标… +”,”+第N个字符行下标+”,”+第N个字符列下标。

用例

输入 4
A,C,C,F
C,D,E,D
B,E,S,S
F,E,C,A
ACCESS
输出 0,0,0,1,0,2,1,2,2,2,2,3
说明 ACCESS分别对应二维数组的[0,0] [0,1] [0,2] [1,2] [2,2] [2,3]下标位置。

Java

import java.util.LinkedList;
import java.util.Scanner;

public class Main {
    // 定义全局变量
    private static int n;  // 二维数组的大小
    private static String[][] matrix;  // 二维数组
    private static String tar;  // 待查找的字符串
    private static boolean[][] visited;  // 记录每个单元格是否已被访问

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        n = scanner.nextInt();  // 读取二维数组的大小
        scanner.nextLine();  // 读取并忽略换行符
        matrix = new String[n][n];  // 初始化二维数组
        // 读取二维数组的每一行
        for (int i = 0; i < n; i++) {
            String line = scanner.nextLine();
            matrix[i] = line.split(",");  // 使用逗号分割每一行,得到每个单元格的字符
        }
        tar = scanner.nextLine();  // 读取待查找的字符串
        scanner.close();  // 关闭扫描器

        visited = new boolean[n][n];  // 初始化访问记录数组
        String result = findString();  // 查找字符串
        Syst

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

机试E卷D卷刷题日记 文章被收录于专栏

机试刷题记录

全部评论

相关推荐

字节 飞书绩效团队 (n+2) * 15 + 1k * 12 + 1w
点赞 评论 收藏
分享
11-09 14:54
已编辑
华南农业大学 产品经理
大拿老师:这个简历,连手机号码和照片都没打码,那为什么关键要素求职职位就不写呢? 从上往下看,都没看出自己到底是产品经理的简历,还是电子硬件的简历? 这是一个大问题,当然,更大的问题是实习经历的描述是不对的 不要只是去写实习流程,陈平,怎么去开会?怎么去讨论? 面试问的是你的产品功能点,是怎么设计的?也就是要写项目的亮点,有什么功能?这个功能有什么难处?怎么去解决的? 实习流程大家都一样,没什么优势,也没有提问点,没有提问,你就不得分 另外,你要明确你投的是什么职位,如果投的是产品职位,你的项目经历写的全都是跟产品无关的,那你的简历就没用 你的面试官必然是一个资深的产品经理,他不会去问那些计算机类的编程项目 所以这种四不像的简历,在校招是大忌
点赞 评论 收藏
分享
Hello_WordN:咱就是说,除了生命其他都是小事,希望面试官平安,希望各位平时也多注意安全
点赞 评论 收藏
分享
评论
1
1
分享
牛客网
牛客企业服务