aboutsummaryrefslogtreecommitdiff
path: root/challenge-107
diff options
context:
space:
mode:
authorziameraj16 <ziameraj16@gmail.com>2021-04-07 15:27:26 +0100
committerziameraj16 <ziameraj16@gmail.com>2021-04-07 15:27:26 +0100
commite0afeb92569d9b7162b55d0b68bb7e6e9799e729 (patch)
tree04df25ede255c7c67bec15bd5a32654a1e2e04ff /challenge-107
parentcbc488fe70b2fe07910bd012be7a94c559217769 (diff)
downloadperlweeklychallenge-club-e0afeb92569d9b7162b55d0b68bb7e6e9799e729.tar.gz
perlweeklychallenge-club-e0afeb92569d9b7162b55d0b68bb7e6e9799e729.tar.bz2
perlweeklychallenge-club-e0afeb92569d9b7162b55d0b68bb7e6e9799e729.zip
Java solution for Self Descriptive Number
Diffstat (limited to 'challenge-107')
-rw-r--r--challenge-107/ziameraj16/README.md34
-rw-r--r--challenge-107/ziameraj16/java/SelfDescriptiveNumber.java44
2 files changed, 52 insertions, 26 deletions
diff --git a/challenge-107/ziameraj16/README.md b/challenge-107/ziameraj16/README.md
index 4e1a6ecc5e..e7bf263e77 100644
--- a/challenge-107/ziameraj16/README.md
+++ b/challenge-107/ziameraj16/README.md
@@ -1,37 +1,19 @@
-# Maximum Gap
+# Self Descriptive Number
## Java Solution
To compile the code run
```java
-javac MaximumGap.java
+javac SelfDescriptiveNumber.java
```
To run
```java
-java MaximumGap
+java SelfDescriptiveNumber
```
### Example
```bash
-/perlweeklychallenge-club/challenge-106/ziameraj16/java$ javac MaximumGap.java
-/perlweeklychallenge-club/challenge-106/ziameraj16/java$ java MaximumGap
-Enter comma separated values
-2,9,3,5
-4
-```
-## Kotlin Solution
-
-To compile the code run
-```java
-kotlinc MaximumGap.kt
-```
-To run
-```java
-kotlin MaximumGap
-```
-### Example
-```bash
-/perlweeklychallenge-club/challenge-106/ziameraj16/kotlin$ kotlinc MaximumGapKotlin.kt
-/perlweeklychallenge-club/challenge-106/ziameraj16/kotlin$ kotlin MaximumGapKotlin
-Enter comma separated values
-1,3,8,2,0
-5
+/perlweeklychallenge-club/challenge-107/ziameraj16/java$ javac SelfDescriptiveNumber.java
+/perlweeklychallenge-club/challenge-107/ziameraj16/java$ java SelfDescriptiveNumber
+1210
+2020
+21200
```
diff --git a/challenge-107/ziameraj16/java/SelfDescriptiveNumber.java b/challenge-107/ziameraj16/java/SelfDescriptiveNumber.java
new file mode 100644
index 0000000000..acfa046fff
--- /dev/null
+++ b/challenge-107/ziameraj16/java/SelfDescriptiveNumber.java
@@ -0,0 +1,44 @@
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class SelfDescriptiveNumber {
+
+ public static void main(String[] args) {
+ int count = 0;
+ int i = 1;
+ while (true) {
+ if (count == 3) {
+ break;
+ }
+ if (isSelfDescriptiveNumber(i)) {
+ System.out.println(i);
+ count++;
+ }
+ i++;
+ }
+ }
+
+ private static boolean isSelfDescriptiveNumber(int number) {
+ String valueAsString = Integer.valueOf(number).toString();
+ Map<Integer, Integer> map = new HashMap(valueAsString.length());
+ for (int i = 0; i < valueAsString.length(); i++) {
+ final int c = Character.getNumericValue(valueAsString.charAt(i));
+ if (map.containsKey(c)) {
+ map.put(c, map.get(c) + 1);
+ } else {
+ map.put(c, 1);
+ }
+ }
+ for (int i = 0; i < valueAsString.length(); i++) {
+ int c = Character.getNumericValue(valueAsString.charAt(i));
+ if (map.getOrDefault(i, 0) != c) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+
+}
+