奇虎360_2017校园招聘笔试编程题第一题

来源:互联网 发布:免费网络英语课堂 编辑:程序博客网 时间:2024/04/30 19:07

今晚做了360的校招笔试题,编程题难度适中,在这里跟大家分享一下编程题的第一题。

1、 题目
这里写图片描述

2、 输入输出及样例
这里写图片描述

3、 我的思路
这题应该看题目理解一下就有思路,最简单粗暴的就是创建一个二维数组input[][],模拟键盘的九个数字键,判断是否同时成立input[0][0]=input[2][2]、input[0][1]=input[2][1]、input[0][2]=input[2][0]、input[1][0]=input[1][2]。如果同时成立,那么就是对称,否则就是不对称。
但是这种方法写起来比较繁琐,还有一种比较简单点的写法,就是定义一个一维数组input[],判断input[i]==input[8-i]在i等于0到3时是否都成立。如果是,那么对称,否则不对称,这里可以用循环实现,写法上稍微简单些。

4、 我的实现

import java.util.Scanner;public class Ti1{    public static void main(String[] args)    {               Scanner scanner = new Scanner(System.in);        while(scanner.hasNextLine())        {            char[] input = new char[9];                     char[] input1 = scanner.nextLine().toCharArray();            char[] input2 = scanner.nextLine().toCharArray();            char[] input3 = scanner.nextLine().toCharArray();            //将输入的数据构建成一个一维数组            for(int i=0; i<3; i++)            {                input[i] = input1[i];            }            for(int i=0; i<3; i++)            {                input[i+3] = input2[i];            }            for(int i=0; i<3; i++)            {                input[i+6] = input3[i];            }            //判断是否对称            int flag = 0;            for(int j=0; j<4; j++)            {                if(input[j] != input[8-j])                {                    flag = 1;                    break;                }            }            if(flag == 0)//对称            {                System.out.println("YES");            }            else//不对称            {                System.out.println("NO");            }                   }           }}

5、 总结
这题我能想到的就是4中提到的两种思路,如果哪位大神有更好的解法,恳请不吝赐教,不胜感激!

0 0