DEPARTMENT OF
COMPUTER SCIENCE & ENGINEERING
Winning Camp Worksheet (Java)
Day: 17
Name : Saurav Singha UID : 21BCS5421
Subject : Java Section : SC-904 (B)
Date : 15/06/2024
Problem 1: Additive Number Code
Solution:
class Solution {
public boolean isAdditiveNumber(String num) {
long number1 = 0;
for (int i = 0; i < [Link]() - 1; i++) {
number1 = number1 * 10 + [Link](i) - '0';
long number2 = 0;
for (int j = i + 1; j < [Link](); j++) {
number2 = number2 * 10 + [Link](j) - '0';
if (solv(number1, number2, j + 1, num, 2))
return true;
if (number2 == 0)
break;
}
if (number1 == 0)
break;
}
return false;
}
boolean solv(long number1, long number2, int curr, String num, int count) {
if (curr >= [Link]()) {
if (count >= 3)
return true;
return false;
DEPARTMENT OF
COMPUTER SCIENCE & ENGINEERING
}
if ([Link](curr) == '0' && number1 + number2 != 0)
return false;
long number = 0;
long target = number1 + number2;
for (int i = curr; i < [Link](); i++) {
number = number * 10 + [Link](i) - '0';
if (number == target && solv(number2, target, i + 1, num, count + 1))
return true;
else if (number > target)
break;
}
return false;
}
}
Output:
DEPARTMENT OF
COMPUTER SCIENCE & ENGINEERING
Problem 2: Find the Index of the First Occurrence in a String Code
Solution:
class Solution {
public int strStr(String haystack, String needle) {
return [Link](needle);
}
}
Output:
Problem 3: Palindrome Partitioning Code
Solution:
class Solution {
public List<List<String>> partition(String s) {
List<List<String>> res = new ArrayList<>();
List<String> path = new ArrayList<>();
partitionHelper(0, s, path, res);
return res;
DEPARTMENT OF
COMPUTER SCIENCE & ENGINEERING
void partitionHelper(int index, String s, List<String> path, List<List<String>> res)
{
if (index == [Link]()) {
[Link](new ArrayList<>(path));
return;
}
for (int i = index; i < [Link](); ++i) {
if (isPalindrome(s, index, i)) {
[Link]([Link](index, i + 1));
partitionHelper(i + 1, s, path, res);
[Link]([Link]() - 1);
}
}
}
boolean isPalindrome(String s, int start, int end) {
while (start <= end) {
if ([Link](start) != [Link](end))
return false;
start++;
end--;
}
return true;
}
}
DEPARTMENT OF
COMPUTER SCIENCE & ENGINEERING
Output:
Problem 4: Pascal's Triangle Code
Solution:
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> res = new ArrayList<>();
[Link]([Link](1));
for (int i = 0; i < numRows - 1; i++) {
List<Integer> dummyRow = new ArrayList<>();
[Link](0);
[Link]([Link]([Link]() - 1));
[Link](0);
List<Integer> row = new ArrayList<>();
for (int j = 0; j < [Link]() - 1; j++) {
[Link]([Link](j) + [Link](j + 1));
}
DEPARTMENT OF
COMPUTER SCIENCE & ENGINEERING
[Link](row);
}
return res;
}
}
Output: