0% found this document useful (0 votes)
52 views7 pages

Zoho Java 100 Coding Interview Programs Compact

The document provides a compact guide to 100 Java coding interview programs, each presented with a problem statement, example input/output, and a concise explanation of the solution approach. It covers various topics including string manipulation, array operations, number theory, and matrix operations, emphasizing the use of basic loops, arrays, and maps. Each program is designed to fit on a single page for easy reference during interviews.

Uploaded by

Logeshwar SB
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
52 views7 pages

Zoho Java 100 Coding Interview Programs Compact

The document provides a compact guide to 100 Java coding interview programs, each presented with a problem statement, example input/output, and a concise explanation of the solution approach. It covers various topics including string manipulation, array operations, number theory, and matrix operations, emphasizing the use of basic loops, arrays, and maps. Each program is designed to fit on a single page for easy reference during interviews.

Uploaded by

Logeshwar SB
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Zoho Java 100 Coding Interview Programs

Compact Interview Guide — Problem · Example · Java snippet · Explanation

Generated for: Zoho Java 100 Coding Interview Programs

Format: Compact — each problem concise to fit one page lines


1. Count frequency of characters
Example: Input: "aabbc" → Output: a=2 b=2 c=1
Map<Character,Integer> map=new LinkedHashMap<>(); for(char c:s.toCharArray())
map.put(c,map.getOrDefault(c,0)+1);
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
2. Compress & decompress (a4b2c3)
Example: Input: "aaaabbccc" → Encoded: a4b2c3, Decoded → aaaabbccc
Compress: iterate, count runs; Decompress: parse digits and append
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
3. Remove consecutive duplicates
Example: Input: "aaabbcca" → Output: "abca"
StringBuilder sb; for i: if(s[i]!=s[i-1]) sb.append(s[i]);
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
4. Check if two strings are anagrams
Example: Input: "listen","silent" → true
Sort char arrays and compare or use freq[26]
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
5. Reverse each word in a sentence
Example: Input: "I love Zoho" → Output: "I evol ohoZ"
Split by space, reverse each word using StringBuilder
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
6. Reverse order of words in sentence
Example: Input: "Zoho is best" → Output: "best is Zoho"
Split, iterate from end, join with spaces
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
7. Toggle case
Example: Input: "AbC" → Output: "aBc"
For each char, if upper → toLowerCase else toUpperCase
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
8. Longest substring without repeating chars
Example: Input: "abcabcbb" → Output length 3 ("abc")
Sliding window with last index map
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
9. First non-repeating character
Example: Input: "aabbcd" → Output: 'c'
Use LinkedHashMap char->count, find first with count 1
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
10. Implement your own split()
Example: Input: "a,b,c",',' → [a,b,c]
Iterate chars, build tokens on delimiter
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
11. Implement your own indexOf()
Example: Find substring pos without using indexOf
Naive sliding compare; return index or -1
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
12. Find longest palindrome substring (center expand)
Example: Input: "babad" → "bab" or "aba"
Expand around centers for each index
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
13. Rearrange string alternate letters & digits
Example: Input: "a1b2c3" → Output: "a1b2c3" or grouped
Partition into letters and digits then merge
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
14. Rearrange string by character frequency
Example: Input: "aabbbc" → Output: "bbbaac"
Count freq and sort by freq (simple bucket or array)
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
15. Count vowels & consonants
Example: Input: "hello" → vowels=2 consonants=3
Check char ranges
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
16. Remove spaces or special characters
Example: Input: "a b!c" → "abc"
Append only isLetterOrDigit chars
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
17. Check if string is rotation of another
Example: s1 in s2+s2 check using custom indexOf
If lengths equal and s1 is substring of s2+s2
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
18. Replace substring manually (no replace())
Example: Replace occurrences by manual scan and build
Scan and append replacement when match found
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
19. Validate palindrome string ignoring case
Example: Input: "Aba" → true
Two-pointer check with Character.toLowerCase and skip non-alnum
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
20. Convert Roman numerals to integer
Example: Input: "IX" → 9
Map symbols and subtract when smaller before larger
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
21. Add two numbers represented as strings
Example: "1234" + "567" → "1801"
Add from right to left with carry in StringBuilder
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
22. Convert string to integer (custom parseInt)
Example: "-123" → -123
Parse sign and accumulate digits
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
23. Check pangram (all alphabets present)
Example: "The quick brown fox..." → true
Track seen letters boolean[26]
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
24. Count occurrence of each word
Example: "a b a" → a:2 b:1
Split by space, map counts
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
25. Find most frequent character in string
Example: Return character with max frequency
Track counts and max
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
26. Find missing number in array (1–N)
Example: [1,2,4] with n=4 → 3
Use sum formula or XOR
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
27. Find duplicate element
Example: [1,3,4,3,2] → 3
Use XOR or frequency
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
28. Move zeros to end
Example: [0,1,0,3,12] → [1,3,12,0,0]
Two-pointer compact non-zeros then fill zeros
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
29. Find 2nd largest without sorting
Example: [5,1,9,2] → 5
Track first and second max
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
30. Sort 0s,1s,2s (Dutch Flag)
Example: [2,0,2,1,1,0] → [0,0,1,1,2,2]
Low-mid-high pointers
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
31. Reverse an array
Example: [1,2,3] → [3,2,1]
Swap two pointers
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
32. Rotate array by K positions
Example: [1,2,3,4,5],k=2 → [4,5,1,2,3]
Reverse parts or use temp array
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
33. Leaders in array
Example: [16,17,4,3,5,2] → [17,5,2]
Traverse from right tracking max
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
34. Count pairs with given sum
Example: [1,5,7,-1], sum=6 → pairs (1,5)(7,-1)
Use hashmap of counts
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
35. Merge two sorted arrays
Example: Merge into single sorted output
Two-pointer merge
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
36. Intersection of two arrays
Example: Elements present in both
Use frequency map for smaller array
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
37. Union of two arrays
Example: Unique elements from both
Use boolean seen or set
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
38. Rearrange even & odd numbers
Example: Even numbers first preserving order
Collect evens then odds
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
39. Maximum consecutive 1s
Example: [1,1,0,1,1,1] → 3
Scan and count streaks
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
40. Find equilibrium index
Example: Index where left sum == right sum
Total sum and running left sum
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
41. Separate positive & negative numbers
Example: Partition array keeping relative order
Use stable partition: extra array or two lists
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
42. Kadane's algorithm (max subarray sum)
Example: [-2,1,-3,4,-1,2,1,-5,4] → 6
Track currentSum and maxSum
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
43. Find common elements in three arrays
Example: Triple intersection
Use maps or three pointers if sorted
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
44. Check if array is sorted & rotated
Example: [3,4,5,1,2] → true
Count drops should be <=1
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
45. Print all subarrays
Example: Generate all subarrays O(n^2)
Two loops for start and end
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
46. Check prime number
Example: isPrime(n) by trial division up to sqrt(n)
Return false for n<2
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
47. Print prime numbers till N
Example: Sieve or trial division
Loop and isPrime
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
48. Armstrong number
Example: 153 → true
Sum of digits^count equals number
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
49. Strong number
Example: 145 → true (sum of factorials of digits)
Compute factorials and sum
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
50. Perfect number
Example: 28 → true (sum of proper divisors equals number)
Loop to sqrt and add divisors
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
51. Palindrome number
Example: 121 → true
Reverse digits and compare
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
52. Reverse digits of a number
Example: 123 → 321
Accumulate reversed
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
53. Factorial (loop & recursion)
Example: 5 → 120
Iterative multiply or recursive
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
54. Fibonacci series (loop & recursion)
Example: 0 1 1 2 3 ...
Iterative loop or recursion
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
55. Sum of digits until single digit
Example: 9875 → 2 (digital root)
Repeat sum of digits or use formula (n-1)%9+1
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
56. LCM & GCD of two numbers
Example: Use Euclid gcd then lcm = a/gcd*b
Implement gcd iteratively
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
57. Swap numbers without temp variable
Example: a=a+b; b=a-b; a=a-b or XOR method
Careful about overflow
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
58. Add two numbers without + operator
Example: Use bitwise add loop with carry
While b!=0: carry=a&b; a^=b; b=carry<<1
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
59. Decimal to Binary conversion
Example: 26 → 11010
Divide by 2 collect remainders
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
60. Binary to Decimal conversion
Example: 1101 → 13
Accumulate bits * powers of 2
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
61. Decimal to Hexadecimal
Example: 255 → FF
Divide by 16 map remainders
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
62. Hexadecimal to Binary
Example: "1A" → 00011010
Map hex digit to 4-bit binary
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
63. Find power of a number (loop)
Example: 2^8 → 256
Multiply in loop or fast exponentiation
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
64. Count digits in a number
Example: n>0 count++ while n/=10
Edge case n=0 count=1
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
65. Check if number is perfect square
Example: Use sqrt and check integer or binary search
Avoid floating precision issues
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
66. Print matrix diagonals
Example: Print primary and secondary diagonals
Loop i=0..n-1
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
67. Sum of diagonal elements
Example: Sum elements at [i][i] and [i][n-1-i]
Avoid double counting center for odd n
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
68. Sum of boundary elements
Example: Sum first and last row and first and last col
Loop boundaries carefully
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
69. Transpose of a matrix
Example: Swap a[i][j] with a[j][i] for j>i
In-place for square matrices
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
70. Rotate matrix 90° clockwise
Example: Transpose then reverse each row
Two-step transform
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
71. Spiral matrix traversal
Example: Print in spiral order
Maintain top,bottom,left,right bounds and iterate
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
72. Add two matrices
Example: Element-wise sum
Nested loops
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
73. Multiply two matrices
Example: Standard triple nested loop
Careful with dimensions
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
74. Find row with max sum
Example: Compute sum of each row and track max
Return index or sum
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
75. Search element in 2D sorted matrix
Example: Treat matrix as flattened binary search or row-wise elimination
Use binary search on rows then columns
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
76. Count currency notes for given amount
Example: 2456 → 2000:1,200:2,50:1,5:1,1:1
Greedy divide by denominations
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
77. Print number triangle pattern
Example: 1; 1 2; 1 2 3 ...
Nested loops
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
78. Print diamond/star pyramid pattern
Example: Construct symmetric pyramid using spaces and stars
Loop heights up and down
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
79. Pascal's triangle
Example: See earlier code using combinatorics
Compute next row from previous
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
80. Hollow square / inverted triangle pattern
Example: Print stars with spaces inside
Conditional printing in loops
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
81. Validate IP address
Example: "192.168.1.1" → true
Split by '.' and check 0-255 numeric and no leading zeros
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
82. Generate random password
Example: Mix letters digits special chars of given length
Use Random and char pools
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
83. Find day of week from date
Example: Given date compute using Zeller's congruence or LocalDate
Use algorithm or Java date API if allowed
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
84. Print all dates between two dates
Example: Iterate date by plusDays from start to end
Use calendar arithmetic
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
85. Check Armstrong numbers in range
Example: List all Armstrong numbers up to N
Use digit power sum check
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
86. Find largest & smallest digits in number
Example: Parse digits and track min/max
Edge case negative numbers
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
87. Rearrange numbers ascending/descending manually
Example: Implement simple selection or insertion sort
Use O(n^2) sorts for small arrays
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
88. Convert 24hr to 12hr format
Example: 13:45 → 1:45 PM
Handle midnight and noon
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
89. Find numbers divisible by given divisor in range
Example: Loop and check modulus
Collect or print matches
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
90. Check leap year
Example: Use rule: divisible by 4, not by 100 unless by 400
Return boolean
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
91. Sum series 1 + 11 + 111 + ... N terms
Example: Compute iteratively using accumulation
term = term*10 + 1
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
92. Count number of words in sentence
Example: Split by whitespace and count non-empty tokens
Trim and split regex
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
93. Remove duplicates from array
Example: Preserve order using boolean seen or LinkedHashSet
Use seen set
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
94. Reverse elements in groups of size K
Example: [1,2,3,4,5], k=2 → [2,1,4,3,5]
Reverse each block
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
95. Count palindromic substrings
Example: Expand around centers for each index
Count all palindromic spans
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
96. Replace multiple spaces with single
Example: Use manual scan to collapse consecutive spaces
Append char when not consecutive space
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
97. Custom sorting of strings by length
Example: "apple","a","banana" → a,apple,banana
Simple comparison by length then lexicographically
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
98. Print cross pattern (X shape)
Example: Print '*' at positions i and n-1-i
Nested loops with condition
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
99. Sort words alphabetically
Example: Split and custom sort (simple bubble/selection)
Compare strings lexicographically
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.
100. Print Fibonacci triangle
Example: Construct rows with Fibonacci numbers
Generate sequence and print in triangular form
Explanation: See concise approach — implement using basic loops/arrays/maps depending on problem.

You might also like