Capgemini Coding Cheat Sheet
Capgemini Coding Cheat Sheet
Input :
aabbbbeeeeffggg
Output:
a2b4e4f2g3
2. Problem Statement –
Sample Input
Input
5 4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
1/76
17 18 19 20
Output
1 2 3 4 8 12 16 20 19 18 17 13 9 5 6 7 11 15 12 14
10
3. Problem Statement –
Example
Input :
10
1233414512
Output :
1 occurs 3 times
2 occurs 2 times
3 occurs 2 times
4 occurs 2 times
5 occurs 1 times
4. Problem Statement –
2/76
Write a function to solve the following equation a3 + a2b + 2a2b
+ 2ab2 +
ab2 + b3.
5. Problem Statement –
Input
42
40
12
Output
20
16
3/76
8
6. Problem Statement
Note :
If the input provided is negative, ignore the sign and provide the
output. If
Sample Input 1:
54
4/76
Sample Output 1:
1, 2, 3, 6, 9, 18, 27, 54
7. Problem Statement
Sample Input 1:
Enter no of semester:3
Sample Output 1:
5/76
Maximum mark in 3 semester:89
8. Problem Statement
the minimum discount offer, so that she can avoid buying that
and save
Sample Input 1:
mobile,10000,20
shoe,5000,10
watch,6000,15
laptop,35000,5
Sample Output 1:
shoe
6/76
WWW.PRIMCECODING.IN 1:1 MOCK SESSION
WWW.PRIMCECODING.IN 1:1 MOCK SESSION
500, the discount on the watch is 900 and the discount on the
laptop is 1750.
9. Problem Statement
string has some “#”, in it you have to move all the hashes to the
front of the
string and return the whole string back and print it.
example :-
Input:
Move#Hash#to#Front
Output:
MoveHashtoFront
well for the lesson on seasons. If her professor says month then,
she has
7/76
to tell the name of the season corresponding to that month. So
write the
Sample Input 1:
Enter month: 6
Sample Output 1:
Season: Summer
8/76
Input:
UDDDUDUU
Output: 1
Input:
limit.
Input: limit = 20
9/76
WWW.PRIMCECODING.IN 1:1 MOCK SESSION
WWW.PRIMCECODING.IN 1:1 MOCK SESSION
Output:
345
8 6 10
5 12 13
15 8 17
12 16 20
sorted array.
Input:
Array: [1, 2, 3, 4, 5, 6, 7, 8, 9]
Target: 4
Output: 3
array.
10/76
15. String Rotation:
Input:
String A: "ABCD"
String B: "CDAB"
Output: True
Explanation: B is a rotation of A .
Input:
Array: [1, 2, 4, 5, 6]
Output: 3
Input:
11/76
Output:
repeating characters.
Input:
String: "abcabcbb"
Output: 3
Input:
Array: [4, 3, 2, 7, 8, 2, 3, 1]
Output:
Duplicates: 2, 3
12/76
20. Check if a Number is Prime:
Input:
Number: 29
Output: True
Input:
Array 1: [1, 3, 5]
Array 2: [2, 4, 6]
Output:
[1, 2, 3, 4, 5, 6]
Input:
Array: [1, 2, 3, 4, 5]
k=2
Output:
[4, 5, 1, 2, 3]
13/76
23. Check for Balanced Parentheses:
Input:
String: "{[()]}"
Output:
True
Input:
Output:
14/76
Input:
Array 1: [1, 2, 2, 1]
Array 2: [2, 2]
Output:
[2]
Input:
String: "racecar"
Output: True
Input:
Output:
15/76
Explanation: The matrix is rotated 90 degrees clockwise.
Input:
Array: [2, 2, 1, 1, 1, 2, 2]
Output:
Problem: Given a string, find the first character that does not
repeat.
Input:
String: "swiss"
Output:
Explanation: 'w' is the first character that does not repeat in the
string.
Input:
16/76
Intervals: [[1,3],[2,6],[8,10],[15,18]]
Output:
[[1,6],[8,10],[15,18]]
## 1. String Compression
java
import java.util.*;
17/76
int count = 1;
if (str.charAt(i) ==
str.charAt(i-1)) {
count++;
} else {
result.append(str.charAt(i-
1));
if (count > 1)
result.append(count);
count = 1;
result.append(str.charAt(str.length()-1));
if (count > 1)
result.append(count);
return result.toString();
18/76
{
String output =
compressString(input);
System.out.println("Input: " +
input);
System.out.println("Output: " +
output);
java
import java.util.*;
if (matrix.length == 0) return
result;
19/76
int top = 0, bottom = matrix.length
- 1;
top++;
right--;
bottom--;
20/76
left++;
return result;
int[][] matrix = {
{1, 2, 3, 4},
{5, 6, 7, 8},
};
List<Integer> result =
spiralOrder(matrix);
21/76
## 3. Count Frequency of Elements
java
import java.util.*;
frequencyMap.put(num,
frequencyMap.getOrDefault(num, 0) + 1);
System.out.println(entry.getKey() + "
occurs " + entry.getValue() + " times");
22/76
public static void main(String[] args)
{
System.out.println("Input: " +
Arrays.toString(arr));
countFrequency(arr);
## 4. Equation Solver
java
int a = 2, b = 3;
23/76
int result = solveEquation(a, b);
System.out.println("For a=" + a +
", b=" + b + ": " + result);
java
import java.util.*;
Scanner sc = new
Scanner(System.in);
System.out.print("Enter number of
dealerships: ");
int n = sc.nextInt();
System.out.print("Enter cars
and bikes for dealership " + (i+1) + ": ");
24/76
int cars = sc.nextInt();
System.out.println("Tyres: " +
tyres);
sc.close();
## 6. Find Factors
java
import java.util.*;
Scanner sc = new
Scanner(System.in);
System.out.print("Enter a number:
");
25/76
int n = sc.nextInt();
if (n == 0) {
System.out.println("No
Factors");
return;
n = Math.abs(n);
if (n % i == 0) {
factors.add(i);
System.out.print("Factors: ");
System.out.print(factors.get(i));
26/76
if (i < factors.size() - 1)
System.out.print(", ");
sc.close();
java
import java.util.*;
Scanner sc = new
Scanner(System.in);
System.out.print("Enter no of
semester: ");
27/76
int[] subjects = new
int[semesters];
System.out.print("Enter no of
subjects in semester " + (i+1) + ": ");
subjects[i] = sc.nextInt();
System.out.print("Enter marks
for semester " + (i+1) + ": ");
if (valid)
28/76
System.out.println("Maximum mark in
semester " + (i+1) + ": " + max);
else System.out.println("You
have entered invalid mark.");
sc.close();
java
import java.util.*;
Scanner sc = new
Scanner(System.in);
System.out.print("Enter number of
items: ");
int n =
Integer.parseInt(sc.nextLine());
29/76
String[] items = new String[n];
int minDiscount =
Integer.MAX_VALUE;
System.out.print("Enter item
details: ");
String[] data =
sc.nextLine().split(",");
int price =
Integer.parseInt(data[1]);
int discountPercent =
Integer.parseInt(data[2]);
items[i] = data[0];
discounts[i] = discount;
minDiscount =
Math.min(minDiscount, discount);
System.out.println("Item(s) with
minimum discount:");
30/76
for (int i = 0; i < n; i++) {
if (discounts[i] ==
minDiscount) System.out.println(items[i]);
sc.close();
java
if (c == '#') hashes.append(c);
else others.append(c);
31/76
}
return hashes.toString() +
others.toString();
String input =
"Move#Hash#to#Front";
System.out.println("Input: " +
input);
System.out.println("Output: " +
output);
java
import java.util.*;
32/76
public static String findSeason(int
month) {
Scanner sc = new
Scanner(System.in);
System.out.println("Season: " +
findSeason(month));
sc.close();
33/76
## 11. Counting Valleys
java
if (step == 'U') {
level++;
if (level == 0) valleys++;
} else level--;
return valleys;
34/76
System.out.println("Path: " +
path);
System.out.println("Valleys: " +
result);
java
if (A.length != B.length ||
A[0].length != B[0].length) return false;
if (A[i][j] != B[i][j])
return false;
35/76
}
return true;
java
36/76
for (int b = a; b <= limit;
b++) {
int c =
(int)Math.sqrt(cSquared);
System.out.println(a +
" " + b + " " + c);
generatePythagoreanTriplets(20);
37/76
java
return -1;
int target = 4;
System.out.println("Found at index:
38/76
" + binarySearch(arr, target));
java
if (A.length() != B.length())
return false;
return (A + A).contains(B);
39/76
## 16. Find Missing Number
java
int n = arr.length + 1;
int expectedSum = n * (n + 1) / 2;
int actualSum = 0;
System.out.println("Missing number:
" + findMissingNumber(arr));
40/76
## 17. Reverse Linked List
java
class ListNode {
int val;
ListNode next;
current.next = prev;
prev = current;
current = next;
41/76
}
return prev;
System.out.print(head.val + "
");
head = head.next;
System.out.println();
head.next.next.next = new
ListNode(4);
head.next.next.next.next = new
ListNode(5);
42/76
System.out.print("Original: ");
printList(head);
ListNode reversed =
reverseList(head);
System.out.print("Reversed: ");
printList(reversed);
java
import java.util.*;
43/76
for (int right = 0; right <
s.length(); right++) {
while
(set.contains(s.charAt(right))) {
set.remove(s.charAt(left));
left++;
set.add(s.charAt(right));
maxLength = Math.max(maxLength,
right - left + 1);
return maxLength;
String s = "abcabcbb";
System.out.println("Longest
substring length: " +
lengthOfLongestSubstring(s));
44/76
## 19. Find Duplicates in Array
java
import java.util.*;
if (seen.contains(num))
duplicates.add(num);
else seen.add(num);
return duplicates;
45/76
int[] nums = {4, 3, 2, 7, 8, 2, 3,
1};
System.out.println("Duplicates: " +
findDuplicates(nums));
java
if (n % 2 == 0 || n % 3 == 0)
return false;
if (n % i == 0 || n % (i + 2)
== 0) return false;
return true;
46/76
}
System.out.println(num + " is
prime: " + isPrime(num));
java
import java.util.*;
int i = 0, j = 0, k = 0;
47/76
arr2.length) {
return result;
System.out.println("Merged: " +
Arrays.toString(mergeSortedArrays(arr1,
arr2)));
48/76
## 22. Rotate Array
java
import java.util.*;
k = k % nums.length;
reverse(nums, 0, k - 1);
nums[start] = nums[end];
nums[end] = temp;
start++;
end--;
49/76
}
int k = 2;
rotateArray(nums, k);
System.out.println("Rotated: " +
Arrays.toString(nums));
java
import java.util.*;
50/76
Stack<>();
if (c == '(' || c == '{' || c
== '[') {
stack.push(c);
} else {
if (stack.isEmpty()) return
false;
return false;
return stack.isEmpty();
51/76
{
String s = "{[()]}";
java
maxEndingHere =
Math.max(nums[i], maxEndingHere + nums[i]);
maxSoFar = Math.max(maxSoFar,
maxEndingHere);
52/76
return maxSoFar;
System.out.println("Maximum
subarray sum: " + maxSubArraySum(nums));
java
import java.util.*;
53/76
for (int num : nums1)
set1.add(num);
if (set1.contains(num))
resultSet.add(num);
int i = 0;
return result;
System.out.println("Intersection: "
+ Arrays.toString(intersection(nums1,
nums2)));
54/76
}
java
s = s.replaceAll("[^a-zA-Z0-9]",
"").toLowerCase();
if (s.charAt(left) !=
s.charAt(right)) return false;
left++;
right--;
return true;
55/76
public static void main(String[] args)
{
String s = "racecar";
System.out.println("Is palindrome:
" + isPalindrome(s));
java
import java.util.*;
int n = matrix.length;
// Transpose
56/76
matrix[i][j] = matrix[j]
[i];
matrix[j][i] = temp;
// Reverse rows
matrix[i][j] = matrix[i][n-
1-j];
matrix[i][n-1-j] = temp;
rotateMatrix(matrix);
System.out.println("Rotated matrix:
" + Arrays.deepToString(matrix));
57/76
}
java
int count = 0;
if (count == 0) candidate =
num;
return candidate;
58/76
{
System.out.println("Majority
element: " + majorityElement(nums));
java
import java.util.*;
frequency.put(c,
frequency.getOrDefault(c, 0) + 1);
59/76
for (Map.Entry<Character, Integer>
entry : frequency.entrySet()) {
if (entry.getValue() == 1)
return entry.getKey();
return '\0';
String s = "swiss";
System.out.println("First non-
repeated: '" + firstNonRepeatedChar(s) +
"'");
java
import java.util.*;
60/76
public static int[][]
mergeIntervals(int[][] intervals) {
merged.add(current);
current[1] =
Math.max(current[1], interval[1]);
} else {
current = interval;
merged.add(current);
return merged.toArray(new
61/76
int[merged.size()][]);
int[][] result =
mergeIntervals(intervals);
System.out.println("Merged
intervals: " +
Arrays.deepToString(result));
Got it 👍
Here’s a complete Capgemini Coding CheatSheet in Java with all 30 problems solved briefly.
Each program is self-contained with a main() method for direct execution and sample
demonstration.
java
62/76
public class StringCompression {
public static String compress(String s) {
StringBuilder sb = new StringBuilder();
int count = 1;
for (int i = 1; i <= s.length(); i++) {
if (i < s.length() && s.charAt(i) == s.charAt(i - 1)) count++;
else {
sb.append(s.charAt(i - 1));
if (count > 1) sb.append(count);
count = 1;
}
}
return sb.toString();
}
public static void main(String[] args) {
System.out.println(compress("aabbbbeeeeffggg")); // a2b4e4f2g3
}
}
java
import java.util.*;
public class SpiralMatrix {
public static void main(String[] args) {
int[][] mat = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16},{17,18,19,20}};
List<Integer> res = new ArrayList<>();
int top=0,bottom=mat.length-1,left=0,right=mat[0].length-1;
while(top<=bottom && left<=right){
for(int i=left;i<=right;i++) res.add(mat[top][i]);
top++;
for(int i=top;i<=bottom;i++) res.add(mat[i][right]);
right--;
if(top<=bottom) for(int i=right;i>=left;i--) res.add(mat[bottom][i]);
bottom--;
if(left<=right) for(int i=bottom;i>=top;i--) res.add(mat[i][left]);
left++;
}
System.out.println(res);
63/76
}
}
java
import java.util.*;
public class FrequencyCounter {
public static void main(String[] args) {
int[] arr={1,2,3,3,4,1,4,5,1,2};
Map<Integer,Integer> map=new TreeMap<>();
for(int n:arr) map.put(n,map.getOrDefault(n,0)+1);
for(var e:map.entrySet())
System.out.println(e.getKey()+" occurs "+e.getValue()+" times");
}
}
4. Solve Equation
java
5. Dealership Tyres
java
import java.util.*;
public class TyresCalculator {
64/76
public static void main(String[] args){
int[][] inp={{4,2},{4,0},{1,2}};
for(int i=0;i<inp.length;i++){
int tyres=inp[i][0]*4 + inp[i][1]*2;
System.out.println("Dealership"+(i+1)+" tyres: "+tyres);
}
}
}
6. Find Factors
java
import java.util.*;
public class FindFactor {
public static void main(String[] args){
int n=54;
if(n==0){System.out.println("No Factors");return;}
n=Math.abs(n);
List<Integer> fac=new ArrayList<>();
for(int i=1;i<=n;i++) if(n%i==0) fac.add(i);
System.out.println(fac);
}
}
7. Maximum Marks
java
65/76
}
}
java
java
66/76
java
11–30
Due to length, I’ll split into the remaining 20 solutions in my next message with compact Java
implementations for each (Counting Valleys, Matrix Check, Binary Search, Kadane’s, Linked List
reverse, etc.).
👉 Do you want me to continue with 11–30 in the same detailed style, or should I compact them
(just functions + main) to fit all in one go?
Do
Perfect 👍
Here’s the remaining 11–30 Capgemini Java coding solutions (compact but complete, each has
main() for direct run).
java
67/76
public class CountingValleys {
static int valleys(String s){
int level=0,valley=0;
for(char c:s.toCharArray()){
if(c=='U') level++;
else level--;
if(level==0 && c=='U') valley++;
}
return valley;
}
public static void main(String[] args){
System.out.println(valleys("UDDDUDUU")); // 1
}
}
java
java
import java.util.*;
public class BinarySearch {
static int search(int[] arr,int key){
int l=0,h=arr.length-1;
while(l<=h){
int m=(l+h)/2;
68/76
if(arr[m]==key) return m;
if(arr[m]<key) l=m+1; else h=m-1;
}
return -1;
}
public static void main(String[] args){
int[] arr={1,3,5,7,9};
System.out.println(search(arr,7)); // 3
}
}
java
java
69/76
return prev;
}
public static void main(String[] args){
Node head=new Node(1); head.next=new Node(2); head.next.next=new Node(3);
Node rev=reverse(head);
while(rev!=null){System.out.print(rev.data+" ");rev=rev.next;}
}
}
java
java
import java.util.*;
public class AnagramCheck {
static boolean isAnagram(String a,String b){
if(a.length()!=b.length()) return false;
char[] c1=a.toCharArray(),c2=b.toCharArray();
Arrays.sort(c1); Arrays.sort(c2);
return Arrays.equals(c1,c2);
}
public static void main(String[] args){
System.out.println(isAnagram("listen","silent")); // true
70/76
}
}
java
java
java
71/76
public class Factorial {
static long fact(int n){return (n<=1)?1:n*fact(n-1);}
public static void main(String[] args){
System.out.println(fact(5)); // 120
}
}
java
java
72/76
java
java
java
73/76
}
}
java
java
java
74/76
else if(Character.isLetter(ch)) c++;
}
System.out.println("Vowels:"+v+" Consonants:"+c);
}
}
java
import java.util.*;
public class RemoveDuplicates {
public static void main(String[] args){
int[] arr={1,2,2,3,4,4,5};
Set<Integer> set=new LinkedHashSet<>();
for(int n:arr) set.add(n);
System.out.println(set);
}
}
java
import java.util.*;
public class BubbleSort {
static void sort(int[] arr){
int n=arr.length;
for(int i=0;i<n-1;i++)
for(int j=0;j<n-i-1;j++)
if(arr[j]>arr[j+1]){
int t=arr[j];arr[j]=arr[j+1];arr[j+1]=t;
}
}
public static void main(String[] args){
int[] arr={5,1,4,2,8};
sort(arr);
System.out.println(Arrays.toString(arr));
75/76
}
}
✅ Now you have all 30 Java programs for Capgemini coding prep.
Do you want me to combine all into one single .java file (menu-driven runner) so you can
execute any problem by selecting a number, or keep them as 30 separate files for clarity?
76/76