- 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);
}
}
- 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);
}
- 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;
}
- Reverse Words in a String