DSA Codes
🔢 ARRAY QUESTIONS (1–60)
1. Reverse an Array
static void reverse(int[] a){
int l=0,r=[Link]-1;
while(l<r){
int t=a[l]; a[l]=a[r]; a[r]=t;
l++; r--;
2. Find Maximum Element
static int max(int[] a){
int m=a[0];
for(int x:a) m=[Link](m,x);
return m;
3. Find Minimum Element
static int min(int[] a){
int m=a[0];
for(int x:a) m=[Link](m,x);
return m;
4. Second Largest Element
static int secondLargest(int[] a){
int max=Integer.MIN_VALUE, sec=Integer.MIN_VALUE;
for(int x:a){
if(x>max){ sec=max; max=x; }
else if(x>sec && x!=max) sec=x;
}
return sec;
5. Check if Array is Sorted
static boolean isSorted(int[] a){
for(int i=1;i<[Link];i++)
if(a[i]<a[i-1]) return false;
return true;
6. Remove Duplicates (Sorted Array)
static int removeDuplicates(int[] a){
int i=0;
for(int j=1;j<[Link];j++)
if(a[j]!=a[i]) a[++i]=a[j];
return i+1;
7. Rotate Array by K
static void rotate(int[] a,int k){
k%=[Link];
reverse(a,0,[Link]-1);
reverse(a,0,k-1);
reverse(a,k,[Link]-1);
static void reverse(int[] a,int l,int r){
while(l<r){
int t=a[l]; a[l]=a[r]; a[r]=t;
l++; r--;
}
}
8. Move Zeros to End
static void moveZeros(int[] a){
int j=0;
for(int i=0;i<[Link];i++)
if(a[i]!=0) a[j++]=a[i];
while(j<[Link]) a[j++]=0;
9. Missing Number (1–N)
static int missing(int[] a,int n){
int sum=n*(n+1)/2;
for(int x:a) sum-=x;
return sum;
10. Find Duplicate Element
static int findDuplicate(int[] a){
HashSet<Integer> set=new HashSet<>();
for(int x:a)
if() return x;
return -1;
11. Two Sum
static int[] twoSum(int[] a,int t){
HashMap<Integer,Integer> map=new HashMap<>();
for(int i=0;i<[Link];i++){
if([Link](t-a[i]))
return new int[]{[Link](t-a[i]),i};
[Link](a[i],i);
}
return new int[]{};
12. Majority Element
static int majority(int[] a){
int cnt=0,cand=0;
for(int x:a){
if(cnt==0) cand=x;
cnt += (x==cand)?1:-1;
return cand;
13. Maximum Subarray Sum (Kadane)
static int maxSubArray(int[] a){
int max=a[0], cur=a[0];
for(int i=1;i<[Link];i++){
cur=[Link](a[i],cur+a[i]);
max=[Link](max,cur);
return max;
14. Check Subarray with Given Sum
static boolean subarraySum(int[] a,int k){
HashSet<Integer> set=new HashSet<>();
int sum=0; [Link](0);
for(int x:a){
sum+=x;
if([Link](sum-k)) return true;
[Link](sum);
return false;
15. Product of Array Except Self
static int[] productExceptSelf(int[] a){
int n=[Link];
int[] res=new int[n];
int left=1;
for(int i=0;i<n;i++){
res[i]=left;
left*=a[i];
int right=1;
for(int i=n-1;i>=0;i--){
res[i]*=right;
right*=a[i];
return res;
16. Count Frequency of Elements
static Map<Integer,Integer> frequency(int[] a){
Map<Integer,Integer> map=new HashMap<>();
for(int x:a) [Link](x,[Link](x,0)+1);
return map;
17. Intersection of Two Arrays
static int[] intersection(int[] a,int[] b){
HashSet<Integer> set=new HashSet<>();
for(int x:a) [Link](x);
ArrayList<Integer> res=new ArrayList<>();
for(int x:b)
if([Link](x)) [Link](x);
return [Link]().mapToInt(i->i).toArray();
18. Union of Two Arrays
static Set<Integer> union(int[] a,int[] b){
Set<Integer> set=new HashSet<>();
for(int x:a) [Link](x);
for(int x:b) [Link](x);
return set;
19. Rearrange Positive & Negative
static void rearrange(int[] a){
int j=0;
for(int i=0;i<[Link];i++)
if(a[i]<0){
int t=a[i]; a[i]=a[j]; a[j]=t;
j++;
20. Find Peak Element
static int peak(int[] a){
for(int i=1;i<[Link]-1;i++)
if(a[i]>a[i-1] && a[i]>a[i+1]) return a[i];
return -1;
}
21. Buy & Sell Stock (Max Profit – Single Transaction)
static int maxProfit(int[] prices){
int min=prices[0], profit=0;
for(int i=1;i<[Link];i++){
profit=[Link](profit, prices[i]-min);
min=[Link](min, prices[i]);
return profit;
22. Buy & Sell Stock (Multiple Transactions)
static int maxProfitMultiple(int[] a){
int profit=0;
for(int i=1;i<[Link];i++)
if(a[i]>a[i-1]) profit+=a[i]-a[i-1];
return profit;
23. Chocolate Distribution Problem
static int minDiff(int[] a,int m){
[Link](a);
int res=Integer.MAX_VALUE;
for(int i=0;i+m-1<[Link];i++)
res=[Link](res,a[i+m-1]-a[i]);
return res;
}
24. Equilibrium Index
static int equilibrium(int[] a){
int sum=0,left=0;
for(int x:a) sum+=x;
for(int i=0;i<[Link];i++){
sum-=a[i];
if(left==sum) return i;
left+=a[i];
return -1;
25. Leaders in an Array
static List<Integer> leaders(int[] a){
List<Integer> res=new ArrayList<>();
int max=Integer.MIN_VALUE;
for(int i=[Link]-1;i>=0;i--){
if(a[i]>max){
[Link](a[i]);
max=a[i];
return res;
26. Trapping Rain Water
static int trap(int[] h){
int l=0,r=[Link]-1,leftMax=0,rightMax=0,water=0;
while(l<r){
if(h[l]<h[r]){
leftMax=[Link](leftMax,h[l]);
water+=leftMax-h[l++];
}else{
rightMax=[Link](rightMax,h[r]);
water+=rightMax-h[r--];
return water;
27. Dutch National Flag (0,1,2 Sort)
static void sort012(int[] a){
int low=0,mid=0,high=[Link]-1;
while(mid<=high){
if(a[mid]==0){
swap(a,low++,mid++);
}else if(a[mid]==1){
mid++;
}else{
swap(a,mid,high--);
static void swap(int[] a,int i,int j){
int t=a[i]; a[i]=a[j]; a[j]=t;
}
28. Search in Rotated Sorted Array
static int search(int[] a,int t){
int l=0,r=[Link]-1;
while(l<=r){
int m=(l+r)/2;
if(a[m]==t) return m;
if(a[l]<=a[m]){
if(t>=a[l] && t<a[m]) r=m-1;
else l=m+1;
}else{
if(t>a[m] && t<=a[r]) l=m+1;
else r=m-1;
return -1;
29. Find Minimum in Rotated Sorted Array
static int findMin(int[] a){
int l=0,r=[Link]-1;
while(l<r){
int m=(l+r)/2;
if(a[m]>a[r]) l=m+1;
else r=m;
return a[l];
}
30. Binary Search
static int binarySearch(int[] a,int t){
int l=0,r=[Link]-1;
while(l<=r){
int m=(l+r)/2;
if(a[m]==t) return m;
if(a[m]<t) l=m+1;
else r=m-1;
return -1;
31. First Occurrence (Binary Search)
static int firstOcc(int[] a,int t){
int l=0,r=[Link]-1,res=-1;
while(l<=r){
int m=(l+r)/2;
if(a[m]==t){ res=m; r=m-1; }
else if(a[m]<t) l=m+1;
else r=m-1;
return res;
32. Last Occurrence
static int lastOcc(int[] a,int t){
int l=0,r=[Link]-1,res=-1;
while(l<=r){
int m=(l+r)/2;
if(a[m]==t){ res=m; l=m+1; }
else if(a[m]<t) l=m+1;
else r=m-1;
return res;
33. Count Occurrences
static int countOcc(int[] a,int t){
int first=firstOcc(a,t);
if(first==-1) return 0;
return lastOcc(a,t)-first+1;
34. Prefix Sum Array
static int[] prefixSum(int[] a){
int[] p=new int[[Link]];
p[0]=a[0];
for(int i=1;i<[Link];i++)
p[i]=p[i-1]+a[i];
return p;
35. Range Sum Query
static int rangeSum(int[] p,int l,int r){
return l==0 ? p[r] : p[r]-p[l-1];
}
36. Maximum Product Subarray
static int maxProduct(int[] a){
int max=a[0],min=a[0],res=a[0];
for(int i=1;i<[Link];i++){
if(a[i]<0){
int t=max; max=min; min=t;
max=[Link](a[i],max*a[i]);
min=[Link](a[i],min*a[i]);
res=[Link](res,max);
return res;
37. Find All Pairs with Given Sum
static void pairSum(int[] a,int k){
HashSet<Integer> set=new HashSet<>();
for(int x:a){
if([Link](k-x))
[Link](x+" "+(k-x));
[Link](x);
38. Subarray with Maximum Length (Sum = K)
static int maxLen(int[] a,int k){
Map<Integer,Integer> map=new HashMap<>();
int sum=0,max=0;
for(int i=0;i<[Link];i++){
sum+=a[i];
if(sum==k) max=i+1;
if()
[Link](sum,i);
if([Link](sum-k))
max=[Link](max,[Link](sum-k));
return max;
39. Kth Largest Element
static int kthLargest(int[] a,int k){
PriorityQueue<Integer> pq=new PriorityQueue<>();
for(int x:a){
[Link](x);
if([Link]()>k) [Link]();
return [Link]();
40. Kth Smallest Element
static int kthSmallest(int[] a,int k){
PriorityQueue<Integer> pq=
new PriorityQueue<>([Link]());
for(int x:a){
[Link](x);
if([Link]()>k) [Link]();
return [Link]();
41. Merge Two Sorted Arrays (Without Extra Space – Interview Favorite)
static void merge(int[] a,int[] b){
int i=[Link]-1, j=0;
while(i>=0 && j<[Link]){
if(a[i]>b[j]){
int t=a[i]; a[i]=b[j]; b[j]=t;
i--; j++;
}else break;
[Link](a);
[Link](b);
42. Merge Overlapping Intervals
static int[][] mergeIntervals(int[][] in){
[Link](in,(a,b)->a[0]-b[0]);
List<int[]> res=new ArrayList<>();
int[] cur=in[0];
for(int i=1;i<[Link];i++){
if(in[i][0]<=cur[1])
cur[1]=[Link](cur[1],in[i][1]);
else{
[Link](cur);
cur=in[i];
[Link](cur);
return [Link](new int[[Link]()][]);
43. Find Duplicate (No Extra Space)
static int findDuplicate(int[] a){
int slow=a[0], fast=a[0];
do{
slow=a[slow];
fast=a[a[fast]];
}while(slow!=fast);
fast=a[0];
while(slow!=fast){
slow=a[slow];
fast=a[fast];
return slow;
44. Find Missing & Repeating Number
static int[] missingRepeating(int[] a){
int n=[Link];
int xor=0;
for(int i=0;i<n;i++){
xor^=a[i];
xor^=(i+1);
int rsb=xor & -xor;
int x=0,y=0;
for(int i=0;i<n;i++){
if((a[i]&rsb)!=0) x^=a[i];
else y^=a[i];
if(((i+1)&rsb)!=0) x^=(i+1);
else y^=(i+1);
for(int v:a)
if(v==x) return new int[]{x,y};
return new int[]{y,x};
45. Rotate Matrix 90° Clockwise
static void rotateMatrix(int[][] m){
int n=[Link];
for(int i=0;i<n;i++)
for(int j=i;j<n;j++){
int t=m[i][j];
m[i][j]=m[j][i];
m[j][i]=t;
for(int i=0;i<n;i++)
reverseRow(m[i]);
}
static void reverseRow(int[] r){
int l=0,h=[Link]-1;
while(l<h){
int t=r[l]; r[l]=r[h]; r[h]=t;
l++; h--;
46. Spiral Matrix Traversal
static List<Integer> spiral(int[][] a){
List<Integer> res=new ArrayList<>();
int top=0,bottom=[Link]-1,left=0,right=a[0].length-1;
while(top<=bottom && left<=right){
for(int i=left;i<=right;i++) [Link](a[top][i]);
top++;
for(int i=top;i<=bottom;i++) [Link](a[i][right]);
right--;
if(top<=bottom)
for(int i=right;i>=left;i--) [Link](a[bottom][i]);
bottom--;
if(left<=right)
for(int i=bottom;i>=top;i--) [Link](a[i][left]);
left++;
return res;
47. Majority Elements (> n/3 times)
static List<Integer> majorityNby3(int[] a){
int c1=0,c2=0,n1=0,n2=0;
for(int x:a){
if(x==n1) c1++;
else if(x==n2) c2++;
else if(c1==0){ n1=x; c1=1; }
else if(c2==0){ n2=x; c2=1; }
else{ c1--; c2--; }
c1=0; c2=0;
for(int x:a){
if(x==n1) c1++;
else if(x==n2) c2++;
List<Integer> res=new ArrayList<>();
if(c1>[Link]/3) [Link](n1);
if(c2>[Link]/3) [Link](n2);
return res;
48. Maximum Circular Subarray Sum
static int maxCircularSum(int[] a){
int maxKadane=kadane(a);
int total=0;
for(int i=0;i<[Link];i++){
total+=a[i];
a[i]=-a[i];
}
int minKadane=kadane(a);
return total+minKadane==0?maxKadane:[Link](maxKadane,total+minKadane);
static int kadane(int[] a){
int max=a[0],cur=a[0];
for(int i=1;i<[Link];i++){
cur=[Link](a[i],cur+a[i]);
max=[Link](max,cur);
return max;
49. Subarray with Equal 0s and 1s
static int longest01(int[] a){
Map<Integer,Integer> map=new HashMap<>();
int sum=0,max=0;
[Link](0,-1);
for(int i=0;i<[Link];i++){
sum+= (a[i]==0?-1:1);
if([Link](sum))
max=[Link](max,[Link](sum));
else [Link](sum,i);
return max;
50. Minimum Swaps to Sort
static int minSwaps(int[] a){
int n=[Link];
int[][] arr=new int[n][2];
for(int i=0;i<n;i++){
arr[i][0]=a[i];
arr[i][1]=i;
[Link](arr,[Link](o->o[0]));
boolean[] vis=new boolean[n];
int swaps=0;
for(int i=0;i<n;i++){
if(vis[i]||arr[i][1]==i) continue;
int j=i,cycle=0;
while(!vis[j]){
vis[j]=true;
j=arr[j][1];
cycle++;
swaps+=cycle-1;
return swaps;
51. Longest Consecutive Sequence
static int longestConsecutive(int[] a){
Set<Integer> set=new HashSet<>();
for(int x:a) [Link](x);
int max=0;
for(int x:set){
if(){
int curr=x,len=1;
while([Link](curr+1)){
curr++; len++;
max=[Link](max,len);
return max;
52. Partition Array Around Pivot
static void partition(int[] a,int p){
int j=0;
for(int i=0;i<[Link];i++){
if(a[i]<p){
int t=a[i]; a[i]=a[j]; a[j]=t;
j++;
53. Rearrange Array Alternately
static void rearrange(int[] a){
int n=[Link];
int max=a[n-1]+1;
int minIdx=0,maxIdx=n-1;
for(int i=0;i<n;i++){
if(i%2==0){
a[i]+= (a[maxIdx]%max)*max;
maxIdx--;
}else{
a[i]+= (a[minIdx]%max)*max;
minIdx++;
for(int i=0;i<n;i++)
a[i]/=max;
54. Count Inversions
static int countInversions(int[] a){
return mergeSort(a,0,[Link]-1);
static int mergeSort(int[] a,int l,int r){
int c=0;
if(l<r){
int m=(l+r)/2;
c+=mergeSort(a,l,m);
c+=mergeSort(a,m+1,r);
c+=merge(a,l,m,r);
return c;
static int merge(int[] a,int l,int m,int r){
int[] L=[Link](a,l,m+1);
int[] R=[Link](a,m+1,r+1);
int i=0,j=0,k=l,c=0;
while(i<[Link]&&j<[Link]){
if(L[i]<=R[j]) a[k++]=L[i++];
else{
a[k++]=R[j++];
c+=[Link]-i;
while(i<[Link]) a[k++]=L[i++];
while(j<[Link]) a[k++]=R[j++];
return c;
55. Median of Two Sorted Arrays
static double median(int[] a,int[] b){
int[] c=new int[[Link]+[Link]];
int i=0,j=0,k=0;
while(i<[Link]&&j<[Link])
c[k++]=a[i]<b[j]?a[i++]:b[j++];
while(i<[Link]) c[k++]=a[i++];
while(j<[Link]) c[k++]=b[j++];
int n=[Link];
return n%2==0?(c[n/2]+c[n/2-1])/2.0:c[n/2];
🔤 STRING QUESTIONS (61–100)
61. Reverse String
static String reverse(String s){
return new StringBuilder(s).reverse().toString();
62. Check Palindrome
static boolean isPalindrome(String s){
int l=0,r=[Link]()-1;
while(l<r)
if([Link](l++)!=[Link](r--)) return false;
return true;
63. Anagram Check
static boolean isAnagram(String a,String b){
if([Link]()!=[Link]()) return false;
int[] c=new int[26];
for(char x:[Link]()) c[x-'a']++;
for(char x:[Link]()) c[x-'a']--;
for(int x:c) if(x!=0) return false;
return true;
64. First Non-Repeating Character
static char firstUnique(String s){
int[] c=new int[256];
for(char x:[Link]()) c[x]++;
for(char x:[Link]())
if(c[x]==1) return x;
return '$';
}
65. Count Vowels
static int countVowels(String s){
int c=0;
for(char x:[Link]().toCharArray())
if("aeiou".indexOf(x)>=0) c++;
return c;
66. Longest Common Prefix
static String lcp(String[] a){
String p=a[0];
for(String s:a)
while()
p=[Link](0,[Link]()-1);
return p;
67. Remove Duplicate Characters
static String removeDuplicates(String s){
boolean[] seen=new boolean[256];
StringBuilder sb=new StringBuilder();
for(char c:[Link]())
if(!seen[c]){
seen[c]=true;
[Link](c);
return [Link]();
68. Reverse Words in Sentence
static String reverseWords(String s){
String[] w=[Link](" ");
StringBuilder sb=new StringBuilder();
for(int i=[Link]-1;i>=0;i--)
[Link](w[i]).append(" ");
return [Link]().trim();
69. Check Rotation of String
static boolean isRotation(String a,String b){
return [Link]()==[Link]() && (a+a).contains(b);
70. Longest Palindromic Substring
static String longestPalindrome(String s){
String res="";
for(int i=0;i<[Link]();i++){
res=max(res,expand(s,i,i));
res=max(res,expand(s,i,i+1));
return res;
static String expand(String s,int l,int r){
while(l>=0 && r<[Link]() && [Link](l)==[Link](r)){
l--; r++;
return [Link](l+1,r);
static String max(String a,String b){
return [Link]()>[Link]()?a:b;
}
71. Count Words in a String
static int countWords(String s){
if([Link]().isEmpty()) return 0;
return [Link]().split("\\s+").length;
72. Capitalize First Letter of Each Word
static String capitalize(String s){
String[] w=[Link](" ");
StringBuilder sb=new StringBuilder();
for(String x:w){
[Link]([Link]([Link](0)))
.append([Link](1)).append(" ");
return [Link]().trim();
73. Check Pangram
static boolean isPangram(String s){
boolean[] seen=new boolean[26];
for(char c:[Link]().toCharArray())
if(c>='a'&&c<='z') seen[c-'a']=true;
for(boolean b:seen) if(!b) return false;
return true;
74. Remove All Spaces
static String removeSpaces(String s){
return [Link]("\\s","");
75. String Compression (aaabb → a3b2)
static String compress(String s){
StringBuilder sb=new StringBuilder();
int cnt=1;
for(int i=1;i<=[Link]();i++){
if(i<[Link]() && [Link](i)==[Link](i-1))
cnt++;
else{
[Link]([Link](i-1)).append(cnt);
cnt=1;
return [Link]();
76. Check Valid Shuffle of Two Strings
static boolean isShuffle(String a,String b,String c){
if([Link]()+[Link]()!=[Link]()) return false;
int i=0,j=0,k=0;
while(k<[Link]()){
if(i<[Link]() && [Link](i)==[Link](k)) i++;
else if(j<[Link]() && [Link](j)==[Link](k)) j++;
else return false;
k++;
}
return true;
77. Smallest Window Containing All Characters
static String minWindow(String s,String t){
int[] map=new int[256];
for(char c:[Link]()) map[c]++;
int l=0,count=[Link](),minLen=Integer.MAX_VALUE,start=0;
for(int r=0;r<[Link]();r++){
if(map[[Link](r)]-- >0) count--;
while(count==0){
if(r-l+1<minLen){
minLen=r-l+1;
start=l;
if(map[[Link](l++)]++==0) count++;
return minLen==Integer.MAX_VALUE?"":[Link](start,start+minLen);
78. Longest Substring Without Repeating Characters
static int longestUnique(String s){
int[] map=new int[256];
int l=0,max=0;
for(int r=0;r<[Link]();r++){
map[[Link](r)]++;
while(map[[Link](r)]>1)
map[[Link](l++)]--;
max=[Link](max,r-l+1);
return max;
79. String to Integer (atoi)
static int atoi(String s){
int i=0,sign=1,res=0;
if([Link](0)=='-'){ sign=-1; i++; }
for(;i<[Link]();i++){
if()) break;
res=res*10+([Link](i)-'0');
return res*sign;
80. Integer to String
static String itoa(int n){
return [Link](n);
81. Character Frequency
static Map<Character,Integer> freq(String s){
Map<Character,Integer> map=new HashMap<>();
for(char c:[Link]())
[Link](c,[Link](c,0)+1);
return map;
}
82. Replace Character
static String replaceChar(String s,char a,char b){
return [Link](a,b);
83. Check Subsequence
static boolean isSubsequence(String a,String b){
int i=0,j=0;
while(i<[Link]() && j<[Link]()){
if([Link](i)==[Link](j)) i++;
j++;
return i==[Link]();
84. Lexicographically Smallest String After Swap
static String smallest(String s){
char[] c=[Link]();
int minIdx=0;
for(int i=1;i<[Link];i++)
if(c[i]<c[minIdx]) minIdx=i;
char t=c[0]; c[0]=c[minIdx]; c[minIdx]=t;
return new String(c);
85. Remove Adjacent Duplicates
static String removeAdj(String s){
Stack<Character> st=new Stack<>();
for(char c:[Link]()){
if(![Link]() && [Link]()==c) [Link]();
else [Link](c);
StringBuilder sb=new StringBuilder();
for(char c:st) [Link](c);
return [Link]();
86. Check Isomorphic Strings
static boolean isIsomorphic(String a,String b){
int[] m1=new int[256], m2=new int[256];
for(int i=0;i<[Link]();i++){
if(m1[[Link](i)]!=m2[[Link](i)]) return false;
m1[[Link](i)]=i+1;
m2[[Link](i)]=i+1;
return true;
87. Longest Common Subsequence (Length)
static int lcs(String a,String b){
int[][] dp=new int[[Link]()+1][[Link]()+1];
for(int i=1;i<=[Link]();i++)
for(int j=1;j<=[Link]();j++)
if([Link](i-1)==[Link](j-1))
dp[i][j]=1+dp[i-1][j-1];
else
dp[i][j]=[Link](dp[i-1][j],dp[i][j-1]);
return dp[[Link]()][[Link]()];
88. Check Palindrome Ignoring Special Characters
static boolean validPalindrome(String s){
int l=0,r=[Link]()-1;
while(l<r){
while(l<r && )) l++;
while(l<r && )) r--;
if([Link]([Link](l++))!=
[Link]([Link](r--))) return false;
return true;
89. Count Palindromic Substrings
static int countPal(String s){
int cnt=0;
for(int i=0;i<[Link]();i++){
cnt+=expand(s,i,i);
cnt+=expand(s,i,i+1);
return cnt;
static int expand(String s,int l,int r){
int c=0;
while(l>=0 && r<[Link]() && [Link](l--)==[Link](r++))
c++;
return c;
90. Longest Repeating Character Replacement
static int characterReplacement(String s,int k){
int[] c=new int[26];
int l=0,max=0,res=0;
for(int r=0;r<[Link]();r++){
max=[Link](max,++c[[Link](r)-'A']);
while(r-l+1-max>k)
c[[Link](l++)-'A']--;
res=[Link](res,r-l+1);
return res;
91. Remove Vowels
static String removeVowels(String s){
return [Link]("[aeiouAEIOU]","");
92. Check Rotation Using One Call
static boolean rotation(String a,String b){
return [Link]()==[Link]() && (a+a).contains(b);
}
93. Reverse Each Word
static String reverseWordsIndividually(String s){
String[] w=[Link](" ");
StringBuilder sb=new StringBuilder();
for(String x:w)
[Link](new StringBuilder(x).reverse()).append(" ");
return [Link]().trim();
94. Count Digits in String
static int countDigits(String s){
int c=0;
for(char x:[Link]())
if([Link](x)) c++;
return c;
95. Remove Character from String
static String removeChar(String s,char c){
return [Link]([Link](c),"");
96. Check If String Has All Unique Characters
static boolean allUnique(String s){
boolean[] seen=new boolean[256];
for(char c:[Link]()){
if(seen[c]) return false;
seen[c]=true;
return true;
97. Find Duplicate Characters
static Set<Character> duplicates(String s){
Set<Character> set=new HashSet<>();
Set<Character> dup=new HashSet<>();
for(char c:[Link]())
if() [Link](c);
return dup;
98. Longest Common Prefix (Again – Very Common)
static String lcp(String[] a){
[Link](a);
String x=a[0], y=a[[Link]-1];
int i=0;
while(i<[Link]() && [Link](i)==[Link](i)) i++;
return [Link](0,i);
99. Check Balanced String (Only Letters Count)
static boolean balanced(String s){
int u=0,l=0;
for(char c:[Link]()){
if([Link](c)) u++;
if([Link](c)) l++;
return u==l;
100. Remove Consecutive Characters
static String removeConsecutive(String s){
StringBuilder sb=new StringBuilder();
[Link]([Link](0));
for(int i=1;i<[Link]();i++)
if([Link](i)!=[Link](i-1))
[Link]([Link](i));
return [Link]();