File tree Expand file tree Collapse file tree 5 files changed +273
-0
lines changed
src/main/java/com/chen/algorithm/study Expand file tree Collapse file tree 5 files changed +273
-0
lines changed Original file line number Diff line number Diff line change
1
+ package com .chen .algorithm .study .test13 ;
2
+
3
+ import org .junit .Test ;
4
+
5
+ /**
6
+ * @author : chen weijie
7
+ * @Date: 2019-09-04 23:18
8
+ */
9
+ public class Solution {
10
+
11
+
12
+ public int romanToInt (String s ) {
13
+
14
+ if (s == null || "" .equals (s )) {
15
+ return 0 ;
16
+ }
17
+
18
+ char [] chars = s .toCharArray ();
19
+ Integer [] integers = new Integer [chars .length ];
20
+
21
+ for (int i = 0 ; i < chars .length ; i ++) {
22
+
23
+ switch (chars [i ]) {
24
+ case 'I' :
25
+ integers [i ] = 1 ;
26
+ continue ;
27
+ case 'V' :
28
+ integers [i ] = 5 ;
29
+ continue ;
30
+ case 'X' :
31
+ integers [i ] = 10 ;
32
+ continue ;
33
+ case 'L' :
34
+ integers [i ] = 50 ;
35
+ continue ;
36
+ case 'C' :
37
+ integers [i ] = 100 ;
38
+ continue ;
39
+ case 'D' :
40
+ integers [i ] = 500 ;
41
+ continue ;
42
+ case 'M' :
43
+ integers [i ] = 1000 ;
44
+ continue ;
45
+ default :
46
+ }
47
+ }
48
+
49
+
50
+ int firstValue = 0 ;
51
+ int nextValue = 0 ;
52
+ int sum = 0 ;
53
+
54
+
55
+ for (int i = 0 ; i < integers .length ; i ++) {
56
+ firstValue = integers [i ];
57
+
58
+ if (i == s .length () - 1 ) {
59
+ sum += firstValue ;
60
+ } else {
61
+ nextValue = integers [i + 1 ];
62
+ if (firstValue >= nextValue ) {
63
+ sum += firstValue ;
64
+ } else {
65
+ sum -= firstValue ;
66
+ }
67
+ }
68
+
69
+
70
+ }
71
+ return sum ;
72
+ }
73
+
74
+
75
+ @ Test
76
+ public void testCase () {
77
+ System .out .println (romanToInt ("IV" ));
78
+ }
79
+
80
+
81
+ }
Original file line number Diff line number Diff line change
1
+ package com .chen .algorithm .study .test14 ;
2
+
3
+ import org .junit .Test ;
4
+
5
+ import java .util .HashMap ;
6
+ import java .util .Map ;
7
+
8
+ /**
9
+ *
10
+ * 错误
11
+ *
12
+ *
13
+ * @author : chen weijie
14
+ * @Date: 2019-09-05 00:17
15
+ */
16
+ public class Solution {
17
+
18
+
19
+ public String longestCommonPrefix (String [] strs ) {
20
+
21
+ if (strs == null || strs .length == 0 ) {
22
+
23
+ return "" ;
24
+ }
25
+
26
+
27
+ String result ;
28
+ Map <String , String > map = new HashMap <>();
29
+
30
+ loop :
31
+ for (int j = 0 ; ; j ++) {
32
+ for (int i = 0 ; i < strs .length ; i ++) {
33
+ if (strs [i ] == null || "" .equals (strs [i ])) {
34
+ return "" ;
35
+ }
36
+
37
+ if (i == 0 ) {
38
+ map .put (strs [i ].substring (0 , j ), strs [i ].substring (0 , j ));
39
+ continue ;
40
+ }
41
+ if (!map .containsKey (strs [i ].substring (0 , j ))) {
42
+ result = strs [i ].substring (0 , j - 1 );
43
+ break loop ;
44
+ }
45
+ }
46
+ }
47
+ return result ;
48
+
49
+ }
50
+
51
+ @ Test
52
+ public void testCase (){
53
+
54
+
55
+ String [] strings = {"" };
56
+
57
+ System .out .println (longestCommonPrefix (strings ));
58
+
59
+
60
+
61
+ }
62
+
63
+
64
+ }
Original file line number Diff line number Diff line change
1
+ package com .chen .algorithm .study .test14 ;
2
+
3
+ import org .junit .Test ;
4
+
5
+ /**
6
+ * @author : chen weijie
7
+ * @Date: 2019-09-05 00:55
8
+ */
9
+ public class Solution2 {
10
+
11
+
12
+ public String longestCommonPrefix (String [] strs ) {
13
+
14
+ if (strs .length == 0 ) {
15
+ return "" ;
16
+ }
17
+
18
+ String prefix = strs [0 ];
19
+ for (int i = 1 ; i < strs .length ; i ++) {
20
+ while (!strs [i ].startsWith (prefix )) {
21
+ prefix = prefix .substring (0 , prefix .length () - 1 );
22
+ if (prefix .isEmpty ()) {
23
+ return "" ;
24
+ }
25
+ }
26
+ }
27
+ return prefix ;
28
+ }
29
+
30
+
31
+ @ Test
32
+ public void testCase (){
33
+
34
+
35
+ String [] strings = {"flower" ,"flow" ,"flight" };
36
+
37
+ System .out .println (longestCommonPrefix (strings ));
38
+
39
+
40
+
41
+ }
42
+
43
+
44
+
45
+
46
+
47
+ }
Original file line number Diff line number Diff line change
1
+ package com .chen .algorithm .study .test9 ;
2
+
3
+ import org .junit .Test ;
4
+
5
+ /**
6
+ * @author : chen weijie
7
+ * @Date: 2019-09-04 22:54
8
+ */
9
+ public class Solution {
10
+
11
+
12
+ public boolean isPalindrome (int x ) {
13
+
14
+ if (x < 0 ) {
15
+ return false ;
16
+ }
17
+
18
+ char [] chars = String .valueOf (x ).toCharArray ();
19
+
20
+ StringBuilder sb = new StringBuilder ();
21
+ for (int i = chars .length - 1 ; i >= 0 ; i --) {
22
+ sb .append (chars [i ]);
23
+ }
24
+
25
+ return x == Long .parseLong (sb .toString ());
26
+ }
27
+
28
+
29
+
30
+ @ Test
31
+ public void testCase (){
32
+ System .out .println (isPalindrome (2147483647 ));
33
+ }
34
+
35
+
36
+ }
Original file line number Diff line number Diff line change
1
+ package com .chen .algorithm .study .test9 ;
2
+
3
+ import org .junit .Test ;
4
+
5
+ /**
6
+ * @author : chen weijie
7
+ * @Date: 2019-09-04 23:09
8
+ */
9
+ public class Solution2 {
10
+
11
+
12
+ // 通过计算 1221 / 1000, 得首位1
13
+ // 通过计算 1221 % 10, 可得末位 1
14
+
15
+ public boolean isPalindrome (int x ) {
16
+ //边界判断
17
+ if (x < 0 ) {
18
+ return false ;
19
+ }
20
+
21
+ int div = 1 ;
22
+ //
23
+ while (x / div >= 10 ) {
24
+ div *= 10 ;
25
+ }
26
+
27
+ while (x > 0 ) {
28
+ int left = x / div ;
29
+ int right = x % 10 ;
30
+ if (left != right ) {
31
+ return false ;
32
+ }
33
+ x = (x % div ) / 10 ;
34
+ div /= 100 ;
35
+ }
36
+ return true ;
37
+ }
38
+
39
+
40
+ @ Test
41
+ public void testCase () {
42
+ System .out .println (isPalindrome (121 ));
43
+ }
44
+
45
+ }
You can’t perform that action at this time.
0 commit comments