Java Programs for Practice

Swap Two Numbers Without Using a Third Variable

Trick:

Use arithmetic operators.

public class SwapNumbers {
public static void main(String[] args) {

int a = 10;
int b = 20;

a = a + b;
b = a - b;
a = a - b;

System.out.println("a = " + a);
System.out.println("b = " + b);
}
}

Output

a = 20
b = 10

2. Find Largest of Three Numbers Without Using if-else

Trick:

Use the ternary operator.

public class LargestNumber {
public static void main(String[] args) {

int a = 15;
int b = 30;
int c = 25;

int largest = (a > b) ? (a > c ? a : c)
: (b > c ? b : c);

System.out.println("Largest = " + largest);
}
}

3. Reverse a Number

Trick:

Extract the last digit using % 10.

public class ReverseNumber {

public static void main(String[] args) {

int num = 12345;
int reverse = 0;

while(num != 0)
{
int digit = num % 10;
reverse = reverse * 10 + digit;
num = num / 10;
}

System.out.println(reverse);
}
}

4. Count Digits Without Converting to String

Trick:

Repeatedly divide by 10.

public class CountDigits {

public static void main(String[] args) {

int num = 987654;
int count = 0;

while(num != 0)
{
count++;
num /= 10;
}

System.out.println("Digits = " + count);
}
}

5. Check Palindrome Number

Trick:

Reverse the number and compare.

public class Palindrome {

public static void main(String[] args) {

int num = 121;
int original = num;
int reverse = 0;

while(num != 0)
{
reverse = reverse * 10 + num % 10;
num /= 10;
}

if(original == reverse)
System.out.println("Palindrome");
else
System.out.println("Not Palindrome");
}
}

6. Find Missing Number in an Array

Trick:

Use the formula:n(n+1)/2n(n+1)/2n(n+1)/2

public class MissingNumber {

public static void main(String[] args) {

int arr[] = {1,2,3,5};

int n = 5;

int expected = n * (n + 1) / 2;

int sum = 0;

for(int i : arr)
sum += i;

System.out.println("Missing = " + (expected - sum));
}
}

7. Find Duplicate Elements

Trick:

Nested loops (easy version).

public class DuplicateElements {

public static void main(String[] args) {

int arr[] = {2,5,6,2,7,8,5};

for(int i=0;i<arr.length;i++)
{
for(int j=i+1;j<arr.length;j++)
{
if(arr[i]==arr[j])
System.out.println(arr[i]);
}
}
}
}

8. Find Second Largest Number

Trick:

Maintain largest and secondLargest together.

public class SecondLargest {

public static void main(String[] args) {

int arr[] = {10,50,30,90,80};

int largest = Integer.MIN_VALUE;
int second = Integer.MIN_VALUE;

for(int num : arr)
{
if(num > largest)
{
second = largest;
largest = num;
}
else if(num > second && num != largest)
{
second = num;
}
}

System.out.println("Second Largest = " + second);
}
}

9. Check Whether Two Strings are Anagrams

Trick:

Sort both strings.

import java.util.Arrays;

public class Anagram {

public static void main(String[] args) {

String s1 = "listen";
String s2 = "silent";

char a[] = s1.toCharArray();
char b[] = s2.toCharArray();

Arrays.sort(a);
Arrays.sort(b);

if(Arrays.equals(a,b))
System.out.println("Anagram");
else
System.out.println("Not Anagram");
}
}

10. Count Frequency of Every Character

Trick:

Use an array of size 256.

public class CharacterFrequency {

public static void main(String[] args) {

String str = "programming";

int freq[] = new int[256];

for(int i=0;i<str.length();i++)
{
freq[str.charAt(i)]++;
}

for(int i=0;i<256;i++)
{
if(freq[i] != 0)
{
System.out.println((char)i + " : " + freq[i]);
}
}
}
}

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *