aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
+ }
+
+
+}
+