2017-08-20 108 views
-1
import java.io.*; 
import java.util.*; 
import java.text.*; 
import java.math.*; 
import java.util.regex.*; 

public class Solution { 
static void displayPathtoPrincess(int n, String [] grid){ 
    char p; 
    if(grid[0][0]=='p') 
    { 
      for(int i=0;i<(n-1)/2;i++) 
      { 
       System.out.println("UP\nLEFT\n"); 
      } 
    } 
    else if(grid[0][n-1]=='p') 
    { 
     for(int i=0;i<(n-1)/2;i++) 
     { 
       System.out.println("UP\nRIGHT\n"); 
     } 
    } 
    else if(grid[n-1][0]=='p') 
    { 
     for(int i=0;i<(n-1)/2;i++) 
     { 
      System.out.println("DOWN\nLEFT\n"); 
     } 
    } 
    else if(grid[n-1][n-1]=='p') 
    { 
     for(int i=0;i<(n-1)/2;i++) 
     { 
      System.out.println("DOWN\nRIGHT"); 
     } 
    } 
    } 
public static void main(String [] args) { 
     Scanner in = new Scanner(System.in); 
     int m; 
     m = in.nextInt(); 
     int grid[] = new int[m]; 
     for(int i = 0; i < m; i++) { 
      grid[i] = in.nextInt(); 
     } 

    displayPathtoPrincess(m,grid); 
    } 
} 

嘿,我在if語句中傳遞了像「grid [0] [0] =='p'」這樣的幾個條件,就像你在代碼,其中網格是一個二維數組,p是一個字符,但我得到的錯誤「表達式的類型必須是數組類型,但它解析爲字符串」。我一直試圖弄清楚這一點,但我還沒有找到任何解決方案。 注:我是新來的Java和我試圖提高自己。我在這裏先向您的幫助表示感謝。類型表達式必須是數組類型,但它解析爲字符串

+0

「p」是什麼類型? –

+0

「網格」的類型是什麼? –

+2

你的代碼甚至沒有編譯。首先:在main()中,'grid'被聲明爲一個int數組。但是你的子方法的形式參數需要一個String數組。第二:在你的子方法中,你引用String數組,因爲它將是一個兩個二維數組的Character。 – Heri

回答

0

參數網格的類型是一維字符串數組。但是你正在訪問它,就好像它是一個二維字符數組。您應該通過比較String.charAt(position)來更改實施。

相關問題