密文映射(华为od机考题)

一、题目

1.原题

在一个机房中,服务器的位置标识在 n*m 的整数矩阵网格中,1 表示单元格上有服务器,0 表示没有。
如果两台服务器位于同一行或者同一列中紧邻的位置,则认为它们之间可以组成一个局域网。
请你统计机房中最大的局域网包含的服务器个数。

二、思路与代码过程

1.思路

StringBuilder

2.代码过程

①main函数

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        char[] ch = s.toCharArray();
        String hm = transfer(ch);
    }

②transfer函数

private static String transfer(char[] ch) {
        StringBuilder trans = new StringBuilder();
        for (char c : ch) {
            if (c >= 'a' && c <= 'i') {
                trans.append(c-'a'+1).append(' ');
            } else if (c>='j' && c<='z') {
                trans.append(c-'j'+10).append('*').append(' ');
            }
        }
        System.out.println(trans);
        return trans.toString();
    }

三、运行结果

1.运行截图

2.完整代码

import java.util.Scanner;

public class test29 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        char[] ch = s.toCharArray();
        String hm = transfer(ch);
    }

    private static String transfer(char[] ch) {
        StringBuilder trans = new StringBuilder();
        for (char c : ch) {
            if (c >= 'a' && c <= 'i') {
                trans.append(c-'a'+1).append(' ');
            } else if (c>='j' && c<='z') {
                trans.append(c-'j'+10).append('*').append(' ');
            }
        }
        System.out.println(trans);
        return trans.toString();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值