快手2020年4月筆試,第四題

這代碼醜的我自己都不想看了

import java.util.*;


public class kuaishou4 {
    /**
     * 獲取最大可同事辦公員工數
     * @param pos char字符型二維數組 工位分佈
     * @return int整型
     */
    public static int GetMaxStaffs (char[][] pos) {
        // write code here
        int[][] a=new int [pos.length][pos[0].length];
        int count=0;
        for(int i=0;i<pos.length;i++){
            for(int j=0;j<pos[0].length;j++){
                if(pos[i][j]=='.'){
                    if(i-1>=0)
                    if(pos[i-1][j]=='.')
                        a[i][j]++;
                    if(i+1<pos.length)
                    if(pos[i+1][j]=='.')
                        a[i][j]++;
                    if(j-1>=0)
                    if(pos[i][j-1]=='.')
                        a[i][j]++;
                    if(j+1<pos[0].length)
                    if(pos[i][j+1]=='.')
                        a[i][j]++;
                }
            }
        }
        for(int x=0;x<=4;x++){
            for(int i=0;i<pos.length;i++) {
                for (int j = 0; j < pos[0].length; j++) {
                    boolean f1=false,f2=false,f3=false,f4=false;
                    if(a[i][j]==x&&pos[i][j]=='.')
                    {
                        if(i-1<0)
                            f1=true;
                        else if(pos[i-1][j]!='#')
                            f1=true;
                        if(i+1>=pos.length)
                            f2=true;
                        else if(pos[i+1][j]!='#')
                            f2=true;
                        if(j-1<0)
                            f3=true;
                        else if(pos[i][j-1]!='#')
                            f3=true;
                        if(j+1>=pos[0].length)
                            f4=true;
                        else if(pos[i][j+1]!='#')
                            f4=true;

                        if(f1==true&&f2==true&&f3==true&&f4==true){
                            count++;
                            pos[i][j]='#';
                        }
                    }
                }
            }
        }

        return count;
    }

    public static void main(String[] args) {
        Scanner in =new Scanner(System.in);
        char[][]pos =new char[3][5];
        for(int i=0;i<3;i++) {
                pos[i]=in.nextLine().toCharArray();
        }
        System.out.println(GetMaxStaffs(pos));
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章