天天看點

關于測試平台輸出:“你的輸出為: java.lang.ArrayIndexOutOfBoundsException: 15”

今天是比較搞笑,做了一個二叉樹序列化與反序列化的題目。編譯了半天不通過,始終報java.lang.ArrayIndexOutOfBoundsException,也找不問題所在。最後直接對着牛客網網友編譯通過的代碼敲了一遍,後來發現問題所在。

原代碼:

public class Solution {
	    public static int index=-1;
	    String Serialize(TreeNode root) {
	        StringBuilder sr=new StringBuilder();
	        if(root==null)	{
	            sr.append("#,");
	            return sr.toString();
	        }
	        sr.append(root.val+",");
	        sr.append(Serialize(root.left));
	        sr.append(Serialize(root.right));
	        return sr.toString();
	  }
	    TreeNode Deserialize(String str) {
	        index++;
	        int length=str.length();
	        if(index>=length) return null;
	        String string[]=str.split(",");
	        TreeNode node=null;
	        if(!string[index].equals("#")){
	            node=new TreeNode(Integer.parseInt(string[index]));
	            node.left=Deserialize(str);
	            node.right=Deserialize(str);
	        }
	        return node;
	  }
	}
           

編譯結果:

關于測試平台輸出:“你的輸出為: java.lang.ArrayIndexOutOfBoundsException: 15”

編譯通過代碼:

public class Solution {
	    int index=-1;
	    String Serialize(TreeNode root) {
	        StringBuilder sr=new StringBuilder();
	        if(root==null)	{
	            sr.append("#,");
	            return sr.toString();
	        }
	        sr.append(root.val+",");
	        sr.append(Serialize(root.left));
	        sr.append(Serialize(root.right));
	        return sr.toString();
	  }
	    TreeNode Deserialize(String str) {
	        index++;
	        int length=str.length();
	        if(index>=length) return null;
	        String string[]=str.split(",");
	        TreeNode node=null;
	        if(!string[index].equals("#")){
	            node=new TreeNode(Integer.parseInt(string[index]));
	            node.left=Deserialize(str);
	            node.right=Deserialize(str);
	        }
	        return node;
	  }
	}
           

兩處代碼僅僅差別在于一個index的定義,一個是static類型,一個是非靜态類型。個人猜想牛客網的判分平台可能将

Solution類作為一個内部類加載的,而不是唯一主類的那個Solution類。