package com.interview.algorithms.string; public class C11_17_BasicStringOp { /** * How to efficiently reverse a string * @param s * @return */ public static String reverse(String s){ StringBuilder rev = new StringBuilder(); for (int i = s.length() - 1; i >= 0; i--) rev.append(s.charAt(i)); return rev.toString(); } /** * How to efficiently form array of suffixes * @param s * @return */ public static String[] suffixes(String s){ int N = s.length(); String[] suffixes = new String[N]; for (int i = 0; i < N; i++) suffixes[i] = s.substring(i, N); return suffixes; } /** * How long to compute length of longest common prefix */ public static int lcp(String s, String t){ int N = Math.min(s.length(), t.length()); for (int i = 0; i < N; i++) if (s.charAt(i) != t.charAt(i)) return i; return N; } }