1. Check if a String is Substring or not
//Iteration
public static boolean substringOrnot(String s1 , String s2) {
        int j = 0;
        for (int i = 0; i < s1.length() && j < s2.length(); i++) {
            if (s1.charAt(i) == s2.charAt(j)) {
                j++;
            }
        }
        return j == s2.length();
    }
//Recursive
public static boolean substringOrnotRec(String s1 , String s2 , int n , int m) {
        if (m==0 ) {
            return true;
        }
        if (n == 0) {
            return false;
        }
        if (s1.charAt(n-1) == s2.charAt(m-1)) {
            return substringOrnotRec(s1, s2, n-1, m-1);
        }else{
            return substringOrnotRec(s1, s2, n-1, m);
        }
    }
  1. Check if a String is Anagram or Not
//Iteration
public boolean isAnagram(String s, String t) {
        if (s.length() != t.length()) {
            return false;
        }
        char a1[] = s.toCharArray();
        char a2[] = t.toCharArray();
        Arrays.sort(a1);
        Arrays.sort(a2);
        String S1 = new String(a1);
        String S2 = new String(a2);
        return S1.equals(S2);
    }
  1. Left Most Repeating Character
public static int leftmostchar(String s) {
        for (int i = 0; i < s.length(); i++) {
            for (int j = i+1; j < s.length(); j++) {
                if (s.charAt(i) == s.charAt(j)) {
                    return i;
                }
            }
        }
        return -1;
    } 
  1. Reverse Words in a String