Ejemplo n.º 1
0
        /**/
        public static void main(string[] strarr)
        {
            Alphabet.__ <clinit>();
            Alphabet alphabet = new Alphabet(strarr[0]);
            int      num      = alphabet.R();

            int[]  array = new int[num];
            string @this = StdIn.readAll();
            int    num2  = java.lang.String.instancehelper_length(@this);

            for (int i = 0; i < num2; i++)
            {
                if (alphabet.contains(java.lang.String.instancehelper_charAt(@this, i)))
                {
                    int[] arg_54_0 = array;
                    int   num3     = alphabet.toIndex(java.lang.String.instancehelper_charAt(@this, i));
                    int[] array2   = arg_54_0;
                    array2[num3]++;
                }
            }
            for (int i = 0; i < num; i++)
            {
                StdOut.println(new StringBuilder().append(alphabet.toChar(i)).append(" ").append(array[i]).toString());
            }
        }
Ejemplo n.º 2
0
    /**
     * Unit tests the {@code SuffixArrayx} data type.
     *
     * @param args the command-line arguments
     */
    public static void main(String[] args) {
        String s = StdIn.readAll().replaceAll("\n", " ").trim();
        SuffixArrayX suffix1 = new SuffixArrayX(s);
        SuffixArray suffix2 = new SuffixArray(s);
        boolean check = true;
        for (int i = 0; check && i < s.length(); i++) {
            if (suffix1.index(i) != suffix2.index(i)) {
                StdOut.println("suffix1(" + i + ") = " + suffix1.index(i));
                StdOut.println("suffix2(" + i + ") = " + suffix2.index(i));
                String ith = "\"" + s.substring(suffix1.index(i), Math.min(suffix1.index(i) + 50, s.length())) + "\"";
                String jth = "\"" + s.substring(suffix2.index(i), Math.min(suffix2.index(i) + 50, s.length())) + "\"";
                StdOut.println(ith);
                StdOut.println(jth);
                check = false;
            }
        }

        StdOut.println("  i ind lcp rnk  select");
        StdOut.println("---------------------------");

        for (int i = 0; i < s.length(); i++) {
            int index = suffix2.index(i);
            String ith = "\"" + s.substring(index, Math.min(index + 50, s.length())) + "\"";
            int rank = suffix2.rank(s.substring(index));
            assert s.substring(index).equals(suffix2.select(i));
            if (i == 0) {
                StdOut.printf("%3d %3d %3s %3d  %s\n", i, index, "-", rank, ith);
            }
            else {
                // int lcp  = suffix.lcp(suffix2.index(i), suffix2.index(i-1));
                int lcp  = suffix2.lcp(i);
                StdOut.printf("%3d %3d %3d %3d  %s\n", i, index, lcp, rank, ith);
            }
        }
    }
Ejemplo n.º 3
0
    /**
     * Unit tests the {@code SuffixArray} data type.
     *
     * @param args the command-line arguments
     */
    public static void main(String[] args) {
        String s = StdIn.readAll().replaceAll("\\s+", " ").trim();
        SuffixArray suffix = new SuffixArray(s);

        // StdOut.println("rank(" + args[0] + ") = " + suffix.rank(args[0]));

        StdOut.println("  i ind lcp rnk select");
        StdOut.println("---------------------------");

        for (int i = 0; i < s.length(); i++) {
            int index = suffix.index(i);
            String ith = "\"" + s.substring(index, Math.min(index + 50, s.length())) + "\"";
            assert s.substring(index).equals(suffix.select(i));
            int rank = suffix.rank(s.substring(index));
            if (i == 0) {
                StdOut.printf("%3d %3d %3s %3d %s\n", i, index, "-", rank, ith);
            }
            else {
                int lcp = suffix.lcp(i);
                StdOut.printf("%3d %3d %3d %3d %s\n", i, index, lcp, rank, ith);
            }
        }
    }
Ejemplo n.º 4
0
        /**/
        public static void main(string[] strarr)
        {
            string       text         = java.lang.String.instancehelper_trim(java.lang.String.instancehelper_replaceAll(StdIn.readAll(), "\n", " "));
            SuffixArrayX suffixArrayX = new SuffixArrayX(text);
            SuffixArray  suffixArray  = new SuffixArray(text);
            int          num          = 1;
            int          i            = 0;

            while (num != 0 && i < java.lang.String.instancehelper_length(text))
            {
                if (suffixArray.index(i) != suffixArrayX.index(i))
                {
                    StdOut.println(new StringBuilder().append("suffixReference(").append(i).append(") = ").append(suffixArray.index(i)).toString());
                    StdOut.println(new StringBuilder().append("suffix(").append(i).append(") = ").append(suffixArrayX.index(i)).toString());
                    string obj   = new StringBuilder().append("\"").append(java.lang.String.instancehelper_substring(text, suffixArrayX.index(i), java.lang.Math.min(suffixArrayX.index(i) + 50, java.lang.String.instancehelper_length(text)))).append("\"").toString();
                    string text2 = new StringBuilder().append("\"").append(java.lang.String.instancehelper_substring(text, suffixArray.index(i), java.lang.Math.min(suffixArray.index(i) + 50, java.lang.String.instancehelper_length(text)))).append("\"").toString();
                    StdOut.println(obj);
                    StdOut.println(text2);
                    num = 0;
                }
                i++;
            }
            StdOut.println("  i ind lcp rnk  select");
            StdOut.println("---------------------------");
            for (i = 0; i < java.lang.String.instancehelper_length(text); i++)
            {
                int    num2  = suffixArrayX.index(i);
                string text2 = new StringBuilder().append("\"").append(java.lang.String.instancehelper_substring(text, num2, java.lang.Math.min(num2 + 50, java.lang.String.instancehelper_length(text)))).append("\"").toString();
                int    i2    = suffixArrayX.rank(java.lang.String.instancehelper_substring(text, num2));
                if (!SuffixArrayX.s_assertionsDisabled && !java.lang.String.instancehelper_equals(java.lang.String.instancehelper_substring(text, num2), suffixArrayX.select(i)))
                {
                    throw new AssertionError();
                }
                if (i == 0)
                {
                    StdOut.printf("%3d %3d %3s %3d  %s\n", new object[]
                    {
                        Integer.valueOf(i),
                        Integer.valueOf(num2),
                        "-",
                        Integer.valueOf(i2),
                        text2
                    });
                }
                else
                {
                    int i3 = suffixArrayX.lcp(i);
                    StdOut.printf("%3d %3d %3d %3d  %s\n", new object[]
                    {
                        Integer.valueOf(i),
                        Integer.valueOf(num2),
                        Integer.valueOf(i3),
                        Integer.valueOf(i2),
                        text2
                    });
                }
            }
        }
 /**
  * Unit tests the {@code lrs()} method.
  *
  * @param args the command-line arguments
  */
 public static void main(String[] args) {
     String text = StdIn.readAll().replaceAll("\\s+", " ");
     StdOut.println("'" + lrs(text) + "'");
 }