Skip to content

Commit fdc1655

Browse files
committed
Added 1 solution & modified 2 solutions
1 parent c32df45 commit fdc1655

File tree

3 files changed

+62
-45
lines changed

3 files changed

+62
-45
lines changed

Easy/Confusing Number.java

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,20 @@
11
class Solution {
2-
public boolean confusingNumber(int N) {
3-
if (N == 0) {
4-
return false;
5-
}
6-
int copy = N;
7-
StringBuilder sb = new StringBuilder();
8-
while (N > 0) {
9-
int temp = N % 10;
10-
if (temp == 6 || temp == 9) {
11-
sb.append(temp == 6 ? 9 : 6);
12-
}
13-
else if (temp == 0 || temp == 1 || temp == 8) {
14-
sb.append(temp);
15-
}
16-
else {
17-
return false;
18-
}
19-
20-
N /= 10;
21-
}
22-
23-
return Integer.parseInt(sb.toString()) != copy;
2+
public boolean confusingNumber(int N) {
3+
int newNum = 0;
4+
int copy = N;
5+
while (N > 0) {
6+
int rem = N % 10;
7+
N /= 10;
8+
if (rem == 0 || rem == 1 || rem == 8) {
9+
newNum = newNum * 10 + rem;
10+
}
11+
else if (rem == 6 || rem == 9) {
12+
newNum = newNum * 10 + (rem == 6 ? 9 : 6);
13+
}
14+
else {
15+
return false;
16+
}
2417
}
18+
return newNum != copy;
19+
}
2520
}

Easy/Find the difference.java

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,15 @@
1-
public class Solution {
2-
public char findTheDifference(String s, String t) {
3-
String s1 = s;
4-
String s2 = t;
5-
s1 = sortString(s1);
6-
s2 = sortString(s2);
7-
8-
char ans = '0';
9-
10-
for (int i=0;i< s1.length();i++) {
11-
if (s2.charAt(i) != s1.charAt(i)) {
12-
ans = s2.charAt(i);
13-
break;
14-
}
15-
}
16-
return ans == '0' ? s2.charAt(s2.length()-1) : ans;
1+
class Solution {
2+
public char findTheDifference(String s, String t) {
3+
int[] counter = new int[26];
4+
for (char c : s.toCharArray()) {
5+
counter[c - 'a']++;
176
}
18-
19-
public String sortString(String s) {
20-
char[] chars = s.toCharArray();
21-
Arrays.sort(chars);
22-
String sorted = new String(chars);
23-
return sorted;
7+
for (char c : t.toCharArray()) {
8+
if (counter[c - 'a'] == 0) {
9+
return c;
10+
}
11+
counter[c - 'a']--;
2412
}
25-
}
13+
return '-';
14+
}
15+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
class Solution {
2+
public String sortString(String s) {
3+
int[] counter = new int[26];
4+
for (char c : s.toCharArray()) {
5+
counter[c - 'a']++;
6+
}
7+
StringBuilder sb = new StringBuilder();
8+
while (sb.length() != s.length()) {
9+
addLowerToHiger(sb, counter);
10+
addHigherToLower(sb, counter);
11+
}
12+
return sb.toString();
13+
}
14+
15+
private void addLowerToHiger(StringBuilder sb, int[] counter) {
16+
for (int i = 0; i < 26; i++) {
17+
if (counter[i] != 0) {
18+
sb.append((char) (97 + i));
19+
counter[i]--;
20+
}
21+
}
22+
}
23+
24+
private void addHigherToLower(StringBuilder sb, int[] counter) {
25+
for (int i = 25; i >= 0; i--) {
26+
if (counter[i] != 0) {
27+
sb.append((char) (97 + i));
28+
counter[i]--;
29+
}
30+
}
31+
}
32+
}

0 commit comments

Comments
 (0)