qq_28183335 2016-08-22 07:20 采纳率: 100%
浏览 1017
已采纳

截取规则字符串的问题

图片说明

    01;0111;01111;
    01;01111;0111101;
    01;01111;01111101;
    取
    01;01;01;
    01;01;01111;
    01;01;01111;
  • 写回答

7条回答

  • 水不甜 2016-08-22 08:50
    关注
    LZ可以参考下.
    
    public static void main(String[] args)
    {
        String[] treeNodes = new String[3];
        treeNodes[0] = "01";
        treeNodes[1] = "0110";
        treeNodes[2] = "01100";
        findRoot(treeNodes);
    
        treeNodes[0] = "0110";
        treeNodes[1] = "01";
        treeNodes[2] = "01100";
        findRoot(treeNodes);
    
        treeNodes[0] = "0110";
        treeNodes[1] = "10";
        treeNodes[2] = "00100";
        findRoot(treeNodes);
    
    }
    
    public static String findRoot(String[] treeNodes)
    {
        //根节点一定是长度最短的节点
        int nodeLength = Integer.MAX_VALUE;
        int currentLength = 0;
        String root = "";
        for (int i = 0; i < treeNodes.length; i++)
        {
            currentLength = treeNodes[i].length();
            if (currentLength < nodeLength)
            {
                root = treeNodes[i];
                nodeLength = currentLength;
            }
        }
    
        //所有的节点必须以根节点开头
        int count = 0;
        for (int i = 0; i < treeNodes.length; i++)
        {
            if (treeNodes[i].startsWith(root))
            {
                count++;
            }
        }
    
        if (count == treeNodes.length)
        {
            System.out.println("Root is: " + root);
        }
        else
        {
            System.out.println("There is no root");
        }
    
        return root;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?