aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-05-25 14:09:09 +0100
committerGitHub <noreply@github.com>2021-05-25 14:09:09 +0100
commit2e497515281299bc2e0fe428aa67dd564181f238 (patch)
tree9f0dcc9cc0c45e0a6410de4ee1090bda578a52c5
parent51babf9b526a3cf915ac1edd29ec5d8d4fd9a795 (diff)
parentac2f9a029e31fbcdb2c48ce60b3993199de1d1b4 (diff)
downloadperlweeklychallenge-club-2e497515281299bc2e0fe428aa67dd564181f238.tar.gz
perlweeklychallenge-club-2e497515281299bc2e0fe428aa67dd564181f238.tar.bz2
perlweeklychallenge-club-2e497515281299bc2e0fe428aa67dd564181f238.zip
Merge pull request #4145 from ziameraj16/ziameraj16-challenge-114
Java solution for Next Palindrome Number
-rw-r--r--challenge-114/ziameraj16/README.md46
-rw-r--r--challenge-114/ziameraj16/java/HigherIntegerSetBits.java21
-rw-r--r--challenge-114/ziameraj16/java/NextPalindromeNumber.java30
3 files changed, 73 insertions, 24 deletions
diff --git a/challenge-114/ziameraj16/README.md b/challenge-114/ziameraj16/README.md
index 522cc9b303..d066640c97 100644
--- a/challenge-114/ziameraj16/README.md
+++ b/challenge-114/ziameraj16/README.md
@@ -1,49 +1,47 @@
-# Canonical Path
+# Next Palindrome Number
## Java Solution
To compile the code run
```java
-javac CanonicalPath.java
+javac NextPalindromeNumber.java
```
To run
```java
-java CanonicalPath
+java NextPalindromeNumber
```
### Example
```bash
-/perlweeklychallenge-club/challenge-112/ziameraj16/java$ java CanonicalPath
-Enter a string
-/a/
-/a
-/perlweeklychallenge-club/challenge-112/ziameraj16/java$ java CanonicalPath
-Enter a string
-/a/b//c/
-/a/b/c
-/perlweeklychallenge-club/challenge-112/ziameraj16/java$ java CanonicalPath
-Enter a string
-/a/b/c/../..
-/a
+/perlweeklychallenge-club/challenge-114/ziameraj16/java$ javac NextPalindromeNumber.java
+/perlweeklychallenge-club/challenge-114/ziameraj16/java$ java NextPalindromeNumber
+Enter the number
+1234
+1331
+/perlweeklychallenge-club/challenge-114/ziameraj16/java$ java NextPalindromeNumber
+Enter the number
+999
+1001
```
-# Climb Stairs
+# Higher Integer Sets Bits
## Java Solution
To compile the code run
```java
-javac ClimbStairs.java
+javac HigherIntegerSetBits.java
```
To run
```java
-java ClimbStairs
+java HigherIntegerSetBits
```
### Example
```bash
-/perlweeklychallenge-club/challenge-112/ziameraj16/java$ java ClimbStairs
-Enter total number of stairs
+/perlweeklychallenge-club/challenge-114/ziameraj16/java$ javac HigherIntegerSetBits.java
+/perlweeklychallenge-club/challenge-114/ziameraj16/java$ java HigherIntegerSetBits
+Enter the number
3
-3
-/perlweeklychallenge-club/challenge-112/ziameraj16/java$ java ClimbStairs
-Enter total number of stairs
-4
5
+/perlweeklychallenge-club/challenge-114/ziameraj16/java$ java HigherIntegerSetBits
+Enter the number
+12
+17
```
diff --git a/challenge-114/ziameraj16/java/HigherIntegerSetBits.java b/challenge-114/ziameraj16/java/HigherIntegerSetBits.java
new file mode 100644
index 0000000000..4d8f03fa63
--- /dev/null
+++ b/challenge-114/ziameraj16/java/HigherIntegerSetBits.java
@@ -0,0 +1,21 @@
+import java.util.Scanner;
+
+public class HigherIntegerSetBits {
+
+ public static void main(String[] args) {
+ Scanner scanner = new Scanner(System.in);
+ System.out.println("Enter the number");
+ int number = scanner.nextInt();
+ System.out.println(findNextNumberWithSameOnes(number));
+
+ }
+
+ public static int findNextNumberWithSameOnes(int n) {
+ long value = Integer.toBinaryString(n).chars().filter(ch -> ch == '1').count();
+ while(true) {
+ if (value == Integer.toBinaryString(++n).chars().filter(ch -> ch == '1').count()) {
+ return n;
+ }
+ }
+ }
+}
diff --git a/challenge-114/ziameraj16/java/NextPalindromeNumber.java b/challenge-114/ziameraj16/java/NextPalindromeNumber.java
new file mode 100644
index 0000000000..9c90da4d79
--- /dev/null
+++ b/challenge-114/ziameraj16/java/NextPalindromeNumber.java
@@ -0,0 +1,30 @@
+import java.util.Scanner;
+
+public class NextPalindromeNumber {
+
+ public static void main(String[] args) {
+ Scanner scanner = new Scanner(System.in);
+ System.out.println("Enter the number");
+ int number = scanner.nextInt();
+ System.out.println(findNextPalindromeNumber(number));
+ }
+
+ public static int findNextPalindromeNumber(int n) {
+ while (true) {
+ if (isPalindrome(++n)) {
+ return n;
+ }
+ }
+ }
+
+ private static boolean isPalindrome(int number) {
+ String numberAsString = String.valueOf(number);
+ for (int i = 0; i < numberAsString.length() / 2; i++) {
+ if (numberAsString.charAt(i) != numberAsString.charAt(numberAsString.length() - i - 1)) {
+ return false;
+ }
+ }
+ return true;
+
+ }
+}