From 708fbb2d599f7104750f6d2e1b7ba68a88fe70fa Mon Sep 17 00:00:00 2001 From: Andy Date: Sat, 5 Feb 2022 23:30:47 +0800 Subject: [PATCH 1/8] =?UTF-8?q?feature=20=E6=B0=B4=E4=B8=A4=E9=81=93?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leetCode/String/letterCombinations.java | 79 +++++++++++++++++++ .../com/fancv/leetCode/String/strStr.java | 19 +++++ 2 files changed, 98 insertions(+) create mode 100644 src/main/java/com/fancv/leetCode/String/letterCombinations.java create mode 100644 src/main/java/com/fancv/leetCode/String/strStr.java diff --git a/src/main/java/com/fancv/leetCode/String/letterCombinations.java b/src/main/java/com/fancv/leetCode/String/letterCombinations.java new file mode 100644 index 0000000..3780d47 --- /dev/null +++ b/src/main/java/com/fancv/leetCode/String/letterCombinations.java @@ -0,0 +1,79 @@ +package com.fancv.leetCode.String; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 17 https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/ + */ +public class letterCombinations { + public static List letterCombinations(String digits) { + List r = new ArrayList<>(); + if (null == digits || digits.isEmpty()) { + return r; + } + + Map h = new HashMap<>(16); + h.put('2', "abc"); + h.put('3', "def"); + h.put('4', "ghi"); + h.put('5', "jkl"); + h.put('6', "mno"); + h.put('7', "pqrs"); + h.put('8', "puv"); + h.put('9', "wxyz"); + + if (digits.length() == 1) { + String t = h.get(digits.charAt(0)); + for (char c : t.toCharArray()) { + r.add(Character.toString(c)); + } + return r; + } + if (digits.length() == 2) { + for (char a1 : h.get(digits.charAt(0)).toCharArray()) { + for (char a2 : h.get(digits.charAt(1)).toCharArray()) { + r.add(Character.toString(a1) + a2); + } + } + + return r; + } + if (digits.length() == 3) { + for (char a1 : h.get(digits.charAt(0)).toCharArray()) { + for (char a2 : h.get(digits.charAt(1)).toCharArray()) { + for (char a3 : h.get(digits.charAt(2)).toCharArray()) { + r.add(Character.toString(a1) + a2+a3); + } + } + } + + return r; + } + if (digits.length() == 4) { + for (char a1 : h.get(digits.charAt(0)).toCharArray()) { + for (char a2 : h.get(digits.charAt(1)).toCharArray()) { + for (char a3 : h.get(digits.charAt(2)).toCharArray()) { + for (char a4 : h.get(digits.charAt(3)).toCharArray()) { + r.add(Character.toString(a1) + a2+a3+a4); + } + } + } + } + + return r; + } + return r; + + + } + + public static void main(String[] args) { + String d = "23"; + + System.out.println(letterCombinations(d)); + } + +} diff --git a/src/main/java/com/fancv/leetCode/String/strStr.java b/src/main/java/com/fancv/leetCode/String/strStr.java new file mode 100644 index 0000000..1724afa --- /dev/null +++ b/src/main/java/com/fancv/leetCode/String/strStr.java @@ -0,0 +1,19 @@ +package com.fancv.leetCode.String; + +public class strStr { + + + public static int strStr(String haystack, String needle) { + if(haystack.contains(needle)){ + return haystack.indexOf(needle); + }else { + return -1; + } + + } + + public static void main(String[] args) { + System.out.println( strStr("hello","ll")); + System.out.println( strStr("","")); + } +} From 0e8c15c67f74ffaacb95438d5791214a35dc5323 Mon Sep 17 00:00:00 2001 From: Andy Date: Wed, 25 May 2022 22:49:12 +0800 Subject: [PATCH 2/8] =?UTF-8?q?feature=20=E5=AD=97=E7=AC=A6=E4=B8=B2?= =?UTF-8?q?=E7=99=BE=E5=88=86=E6=AF=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leetCode/String/percentageLetter.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/main/java/com/fancv/leetCode/String/percentageLetter.java diff --git a/src/main/java/com/fancv/leetCode/String/percentageLetter.java b/src/main/java/com/fancv/leetCode/String/percentageLetter.java new file mode 100644 index 0000000..c563e47 --- /dev/null +++ b/src/main/java/com/fancv/leetCode/String/percentageLetter.java @@ -0,0 +1,21 @@ +package com.fancv.leetCode.String; + +import java.text.DecimalFormat; + +public class percentageLetter { + + public static int percentageLetter(String s, char letter) { + + Long l = s.chars().count(); + Long q = s.chars().filter(c-> c==letter).count(); + + return (int)(100*(float)q/l); + + + } + + public static void main(String[] args) { + int s=percentageLetter("sdfsooooaooewrddd",'o'); + System.out.println(s); + } +} From 157048a42541184a9f5925d7c455398f7ef81004 Mon Sep 17 00:00:00 2001 From: Andy Date: Fri, 27 May 2022 01:02:01 +0800 Subject: [PATCH 3/8] =?UTF-8?q?feature=20=E5=8F=8C=E5=90=91=E6=98=A0?= =?UTF-8?q?=E5=B0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leetCode/String/percentageLetter.java | 45 ++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/fancv/leetCode/String/percentageLetter.java b/src/main/java/com/fancv/leetCode/String/percentageLetter.java index c563e47..b6304d0 100644 --- a/src/main/java/com/fancv/leetCode/String/percentageLetter.java +++ b/src/main/java/com/fancv/leetCode/String/percentageLetter.java @@ -1,6 +1,10 @@ package com.fancv.leetCode.String; import java.text.DecimalFormat; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; public class percentageLetter { @@ -15,7 +19,46 @@ public static int percentageLetter(String s, char letter) { } public static void main(String[] args) { - int s=percentageLetter("sdfsooooaooewrddd",'o'); + + Boolean s = wordPattern("abba","dog dog dog dog"); System.out.println(s); } + + public static boolean wordPattern(String pattern, String s) { + + int[] p = pattern.chars().toArray(); + String[] ss = s.split(" "); + + if(p.length!=ss.length){ + return false; + } + + HashMap map = new HashMap<>(); + HashMap map2 = new HashMap<>(); + + for(int i=0;i Date: Sat, 28 May 2022 01:20:10 +0800 Subject: [PATCH 4/8] =?UTF-8?q?feature=20=E8=AE=A1=E7=AE=97=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fancv/leetCode/String/strStr.java | 59 ++++++++++++++++++- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/fancv/leetCode/String/strStr.java b/src/main/java/com/fancv/leetCode/String/strStr.java index 1724afa..f43dbab 100644 --- a/src/main/java/com/fancv/leetCode/String/strStr.java +++ b/src/main/java/com/fancv/leetCode/String/strStr.java @@ -1,5 +1,7 @@ package com.fancv.leetCode.String; +import java.util.Stack; + public class strStr { @@ -13,7 +15,60 @@ public static int strStr(String haystack, String needle) { } public static void main(String[] args) { - System.out.println( strStr("hello","ll")); - System.out.println( strStr("","")); + /* System.out.println( strStr("hello","ll")); + System.out.println( strStr("",""));*/ + + System.out.println(calculate("1*5+12-3+9*1+856/80")); + + } + + /** + * 字符串计算机 + * @param s + * @return + */ + public static int calculate(String s) { + + s = s.replace(" ", ""); + int l = s.length(); + char[] chars = s.toCharArray(); + Stack stack = new Stack<>(); + int num = 0; + char flag = '+'; + for (int i = 0; i < l; i++) { + if (Character.isDigit(chars[i])) { + num = num * 10 + (chars[i]-'0'); + } + if (!Character.isDigit(chars[i]) || i == s.length()-1) { + switch (flag) { + case '+': + stack.add(num); + break; + case '-': + stack.add(-num); + break; + case '*': + stack.add(stack.pop() * num); + break; + case '/': + stack.add(stack.pop() / num); + break; + } + flag = s.charAt(i); + num = 0; + + } + + + } + num = 0; + while (!stack.empty()) { + num = num + stack.pop(); + } + + return num; } + + + } From 207b10644e82a0f290093bbd48759ef132e703e2 Mon Sep 17 00:00:00 2001 From: Andy Date: Tue, 7 Mar 2023 21:54:49 +0800 Subject: [PATCH 5/8] =?UTF-8?q?feature=20=E9=87=8D=E5=86=99=E5=86=92?= =?UTF-8?q?=E6=B3=A1=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/fancv/MyTest.java | 49 +++++++++++++++++++ src/main/java/com/fancv/sort/bubbleSort.java | 6 ++- .../java/com/fancv/sort/newBubbleSort.java | 31 ++++++++++++ .../java/com/fancv/stocks/TradingVolume.java | 11 +++++ 4 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/fancv/MyTest.java create mode 100644 src/main/java/com/fancv/sort/newBubbleSort.java create mode 100644 src/main/java/com/fancv/stocks/TradingVolume.java diff --git a/src/main/java/com/fancv/MyTest.java b/src/main/java/com/fancv/MyTest.java new file mode 100644 index 0000000..adf26c9 --- /dev/null +++ b/src/main/java/com/fancv/MyTest.java @@ -0,0 +1,49 @@ +package com.fancv; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class MyTest { + public static void main(String[] args) { + List mydtoList= new ArrayList<>(2); + mydto a = new mydto(); + a.setId(102L); + a.setName("a"); + + mydto b = new mydto(); + b.setId(101L); + b.setName("a"); + mydtoList.add(a); + mydtoList.add(b); + + Map d =mydtoList.stream().collect(Collectors.toMap(mydto::getName,mydto::getId)); + } + +} + +class mydto { + + private String name; + + private Long id; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + +} + diff --git a/src/main/java/com/fancv/sort/bubbleSort.java b/src/main/java/com/fancv/sort/bubbleSort.java index b49fc3c..020a661 100644 --- a/src/main/java/com/fancv/sort/bubbleSort.java +++ b/src/main/java/com/fancv/sort/bubbleSort.java @@ -3,6 +3,8 @@ /** *冒泡排序 * + * 双循环,每次最大的数据冒到最后边 + * 复杂度 o(n2) * 外循环 * 内循环 * @@ -11,7 +13,8 @@ public class bubbleSort { public static void main(String args[]) { System.out.println("冒泡排序"); - int[] arr = {1, 9, 3, 2, 8, 4, 7};//创建数组 + + int[] arr = {91, 9, 3, 2, 8, 4, 7,4};//创建数组 System.out.println("排序前"); showArr(arr);//打印显示排序前 //循环实现冒泡排序 @@ -24,6 +27,7 @@ public static void main(String args[]) { } } + showArr(arr); } System.out.println("排序后"); showArr(arr); diff --git a/src/main/java/com/fancv/sort/newBubbleSort.java b/src/main/java/com/fancv/sort/newBubbleSort.java new file mode 100644 index 0000000..88d2d01 --- /dev/null +++ b/src/main/java/com/fancv/sort/newBubbleSort.java @@ -0,0 +1,31 @@ +package com.fancv.sort; + +import java.util.Arrays; + +public class newBubbleSort { + + public static void main(String[] args) { + System.out.println("盲写冒泡排序"); + + int[] list = {11, 3, 5, 4, 3, 2, 5, 67, 34, 23, 33}; + sort(list); + + System.out.println(Arrays.stream(list).toArray()); + + } + + static void sort(int[] list) { + + for (int i = 0; i < list.length - 1; i++) { + for (int j = 0; j < list.length - 1 - i; j++) { + if (list[j] > list[j + 1]) { + int temp = list[j]; + list[j] = list[j + 1]; + list[j + 1] = temp; + } + } + + } + + } +} diff --git a/src/main/java/com/fancv/stocks/TradingVolume.java b/src/main/java/com/fancv/stocks/TradingVolume.java new file mode 100644 index 0000000..0ef5bc2 --- /dev/null +++ b/src/main/java/com/fancv/stocks/TradingVolume.java @@ -0,0 +1,11 @@ +package com.fancv.stocks; + +/** + * 计算股票交易量 + * 股票活跃度的指标 + * 每天交易量的趋势 + */ +public class TradingVolume { + + +} From 4de23ad32696f5bdff27cf42fa949e84d212835a Mon Sep 17 00:00:00 2001 From: Andy Date: Sat, 18 Mar 2023 17:44:34 +0800 Subject: [PATCH 6/8] feature DivingBoard --- .../fancv/leetCode/arrays/DivingBoard.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/main/java/com/fancv/leetCode/arrays/DivingBoard.java diff --git a/src/main/java/com/fancv/leetCode/arrays/DivingBoard.java b/src/main/java/com/fancv/leetCode/arrays/DivingBoard.java new file mode 100644 index 0000000..837946a --- /dev/null +++ b/src/main/java/com/fancv/leetCode/arrays/DivingBoard.java @@ -0,0 +1,27 @@ +package com.fancv.leetCode.arrays; + +public class DivingBoard { + + public static void main(String[] args) { + + System.out.println(divingBoard(1, 1, 123)); + } + + public static int[] divingBoard(int shorter, int longer, int k) { + + + if (k == 0) { + return new int[k]; + } + if (shorter == longer) { + return new int[]{shorter * k}; + } + int[] r = new int[k + 1]; + for (int i = 0; i < k + 1; i++) { + + r[i] = shorter * (k - i) + longer * i; + } + return r; + + } +} From 5f27cafb8269b41ac3fd1a7c844cf546851014a5 Mon Sep 17 00:00:00 2001 From: Andy Date: Tue, 21 Mar 2023 00:14:20 +0800 Subject: [PATCH 7/8] feature ExcelNames --- .../com/fancv/stringLight/ExcelNames_168.java | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 src/main/java/com/fancv/stringLight/ExcelNames_168.java diff --git a/src/main/java/com/fancv/stringLight/ExcelNames_168.java b/src/main/java/com/fancv/stringLight/ExcelNames_168.java new file mode 100644 index 0000000..e403be4 --- /dev/null +++ b/src/main/java/com/fancv/stringLight/ExcelNames_168.java @@ -0,0 +1,78 @@ +package com.fancv.stringLight; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ExcelNames_168 { + + public static void main(String[] args) { + System.out.println(convertToTitle(1)); + } + + + public static String convertToTitle(int columnNumber) { + + Map integerStringMap = new HashMap<>(26); + integerStringMap.put(1, "A"); + integerStringMap.put(2, "B"); + integerStringMap.put(3, "C"); + integerStringMap.put(4, "D"); + integerStringMap.put(5, "E"); + integerStringMap.put(6, "F"); + integerStringMap.put(7, "G"); + integerStringMap.put(8, "H"); + integerStringMap.put(9, "I"); + integerStringMap.put(10, "J"); + integerStringMap.put(11, "K"); + integerStringMap.put(12, "L"); + integerStringMap.put(13, "M"); + integerStringMap.put(14, "N"); + integerStringMap.put(15, "O"); + integerStringMap.put(16, "P"); + integerStringMap.put(17, "Q"); + integerStringMap.put(18, "R"); + integerStringMap.put(19, "S"); + integerStringMap.put(20, "T"); + integerStringMap.put(21, "U"); + integerStringMap.put(22, "V"); + integerStringMap.put(23, "W"); + integerStringMap.put(24, "X"); + integerStringMap.put(25, "Y"); + integerStringMap.put(26, "Z"); + + List d = new ArrayList<>(24); + operation(columnNumber, d); + + StringBuilder stringBuilder = new StringBuilder(); + for (int i = d.size(); i > 0; i--) { + stringBuilder.append(integerStringMap.get(d.get(i - 1))); + } + + return stringBuilder.toString(); + } + + public static void operation(int i, List r) { + if (i > 26) { + int k = i % 26; + if (k == 0) { + r.add(26); + i = i-26; + } else { + r.add(k); + } + i = i / 26; + if (i > 26) { + operation(i, r); + } else { + r.add(i); + } + + }else { + r.add(i); + } + + + } +} From 421a183f5446789f07b7b2cde7ac50e92acc7661 Mon Sep 17 00:00:00 2001 From: Andy Date: Thu, 23 Mar 2023 00:28:10 +0800 Subject: [PATCH 8/8] feature GetIndex --- .../leetCode/String/LongestPalindrome_5.java | 34 +++++++++++++ .../fancv/leetCode/arrays/GetIndex724.java | 22 ++++++++ .../fancv/stringLight/LastWordLength_58.java | 51 +++++++++++++++++++ 3 files changed, 107 insertions(+) create mode 100644 src/main/java/com/fancv/leetCode/String/LongestPalindrome_5.java create mode 100644 src/main/java/com/fancv/leetCode/arrays/GetIndex724.java create mode 100644 src/main/java/com/fancv/stringLight/LastWordLength_58.java diff --git a/src/main/java/com/fancv/leetCode/String/LongestPalindrome_5.java b/src/main/java/com/fancv/leetCode/String/LongestPalindrome_5.java new file mode 100644 index 0000000..358dfea --- /dev/null +++ b/src/main/java/com/fancv/leetCode/String/LongestPalindrome_5.java @@ -0,0 +1,34 @@ +package com.fancv.leetCode.String; + +public class LongestPalindrome_5 { + + public static void main(String[] args) { + System.out.println(longestPalindrome("cbbfddfddddffgdsgsdfgsdffffdddffffgsdfgsdgsdgsdff")); + } + + public static String longestPalindrome(String s) { + + int l = s.length(); + String sub1 = null; + for (; l > 0; l--) { + for (int j = 0; j + l <= s.length(); j++) { + sub1 = s.substring(j, l + j); + if (isPalindromic(sub1)) { + return sub1; + } + } + } + return null; + } + + public static boolean isPalindromic(String s) { + int len = s.length(); + for (int i = 0; i < len / 2; i++) { + if (s.charAt(i) != s.charAt(len - i - 1)) { + return false; + } + } + return true; + } + +} diff --git a/src/main/java/com/fancv/leetCode/arrays/GetIndex724.java b/src/main/java/com/fancv/leetCode/arrays/GetIndex724.java new file mode 100644 index 0000000..8f85875 --- /dev/null +++ b/src/main/java/com/fancv/leetCode/arrays/GetIndex724.java @@ -0,0 +1,22 @@ +package com.fancv.leetCode.arrays; + +public class GetIndex724 { + + public static void main(String[] args) { + System.out.println(pivotIndex(new int[]{2, 1 - 1})); + } + + public static int pivotIndex(int[] nums) { + int total = nums.length; + int left = 0; + for (int i = 0; i < nums.length; i++) { + + if (left * 2 == total - nums[i] && i != nums.length - 1) { + return i; + } + left = left + nums[i]; + + } + return -1; + } +} diff --git a/src/main/java/com/fancv/stringLight/LastWordLength_58.java b/src/main/java/com/fancv/stringLight/LastWordLength_58.java new file mode 100644 index 0000000..e612bf8 --- /dev/null +++ b/src/main/java/com/fancv/stringLight/LastWordLength_58.java @@ -0,0 +1,51 @@ +package com.fancv.stringLight; + +import java.util.Arrays; + +public class LastWordLength_58 { + + public static void main(String[] args) { + LastWordLength_58 lastWordLength_58 = new LastWordLength_58(); + + System.out.println(lastWordLength_58.lengthOfLastWord("dhfjd sdflka moon")); + System.out.println(lastWordLength_58.CheckPermutation("moongf ff", "mnff ofgo")); + + } + + public int lengthOfLastWord(String s) { + char[] chars = s.toCharArray(); + int r = 0; + for (int j = chars.length; j > 0; j--) { + if (r == 0 && chars[j - 1] == 32) { + continue; + } + if (chars[j - 1] != 32) { + r++; + } else { + break; + } + } + return r; + } + + public boolean CheckPermutation(String s1, String s2) { + + char[] char1 = s1.toCharArray(); + char[] char2 = s2.toCharArray(); + if (char1.length != char2.length) { + return Boolean.FALSE; + } + Arrays.sort(char1); + Arrays.sort(char2); + for (int i = 0; i < char1.length; i++) { + + if (char1[i] == char2[i]) { + continue; + } else { + return Boolean.FALSE; + } + } + + return Boolean.TRUE; + } +}