Skip to content

Commit 881327d

Browse files
committed
Add solutions for problems 3, 13, 125, and 680
1 parent 30294df commit 881327d

File tree

4 files changed

+133
-0
lines changed

4 files changed

+133
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package me.darksnakex.problems;
2+
3+
public class p125 {
4+
5+
public boolean isPalindrome(String s) {
6+
7+
String res = s.toLowerCase().replaceAll("[^a-z0-9]", "");
8+
9+
int der = res.length() - 1;
10+
for (int izq = 0; izq < res.length() / 2; izq++) {
11+
// Caso de letras no iguales
12+
if (res.charAt(der) != res.charAt(izq)) {
13+
return false;
14+
}
15+
der--;
16+
17+
}
18+
19+
return true;
20+
}
21+
22+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package me.darksnakex.problems;
2+
3+
import java.util.HashMap;
4+
import java.util.Map;
5+
6+
public class p13 {
7+
8+
public int romanToInt(String s) {
9+
10+
int res = 0;
11+
12+
Map<Character,Integer> map = new HashMap<>();
13+
map.put('I',1);
14+
map.put('V',5);
15+
map.put('X',10);
16+
map.put('L',50);
17+
map.put('C',100);
18+
map.put('D',500);
19+
map.put('M',1000);
20+
21+
char actual;
22+
for(int i = 0; i <s.length()-1; i++){
23+
actual = s.charAt(i);
24+
if(map.get(actual) >= map.get(s.charAt(i+1)) ){
25+
res+=map.get(actual);
26+
}
27+
else{
28+
res-=map.get(actual);
29+
}
30+
}
31+
32+
33+
return res + map.get(s.charAt(s.length() - 1));
34+
35+
36+
37+
}
38+
39+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package me.darksnakex.problems;
2+
3+
public class p3 {
4+
5+
public int lengthOfLongestSubstring(String s) {
6+
7+
StringBuilder res = new StringBuilder();
8+
int cont = 0;
9+
int fin = 0;
10+
11+
for (int i = 0; i < s.length(); i++) {
12+
String ac = String.valueOf(s.charAt(i));
13+
//System.out.println(ac);
14+
if (!(res.toString().contains(ac))) {
15+
res.append(ac);
16+
cont++;
17+
18+
} else {
19+
20+
fin = Math.max(fin, cont);
21+
int indice = res.indexOf(ac);
22+
if (indice != -1) {
23+
res = new StringBuilder(res.substring(indice + 1)).append(ac);
24+
cont = res.length();
25+
}
26+
27+
}
28+
29+
}
30+
return Math.max(fin, cont);
31+
32+
}
33+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package me.darksnakex.problems;
2+
3+
public class p680 {
4+
5+
6+
public boolean validPalindrome(String s) {
7+
8+
StringBuilder res = new StringBuilder(s);
9+
10+
int der = res.length()-1;
11+
for(int izq = 0; izq < res.length()/2; izq++){
12+
// Caso de letras no iguales
13+
if(res.charAt(der) != res.charAt(izq)){
14+
StringBuilder res2 = new StringBuilder(res);
15+
return aux(res.deleteCharAt(izq), izq, der) || aux(res2.deleteCharAt(der), izq, der);
16+
}
17+
der--;
18+
19+
}
20+
21+
return true;
22+
}
23+
24+
private boolean aux(StringBuilder text, int izq, int der){
25+
der--;
26+
for(; izq < text.length()/2; izq++){
27+
// Caso de letras no iguales
28+
if(text.charAt(der) != text.charAt(izq)){
29+
return false;
30+
}
31+
der--;
32+
33+
}
34+
35+
return true;
36+
37+
}
38+
39+
}

0 commit comments

Comments
 (0)