字符串操作
帅过地球一半的男人
至少帅过地球一半的男人
展开
-
力扣哈希表字符串
力扣链接 思路: 利用哈希表,统计两字符串的字符出现次数,最后比较对应字符出现次数是否相等即可。 法一:数组作为哈希表,利用字符对应的ASCII。 法二:直接使用HashMap 法三:快排 public boolean isAnagram(String s, String t) { //如果仅仅是26字母--可不用HashMap--原始哈希表(数组) int ls = s.length(); if(ls != t.length()) return false; in.原创 2022-03-15 13:34:34 · 305 阅读 · 0 评论 -
647. 回文子串*
力扣链接 思路: 法一:遍历每种长度的字符串,长度为1的,长度为2…从两边往中间,对左右字符进行比较,也就是双指针由两边往中间靠拢。 法二:以当前字符为中心,比较两边的字符,也就是双指针由中间往两边扩张。其中以当前字符为中心需要考虑两种情况,单个字符和两个字符。否则会有缺漏,不像法一,虽然暴力,但每种请况都考虑到。 int ans = 0; public int countSubstrings(String s) { ans = s.length(); //遍历每种长度的字符.原创 2022-03-19 09:51:04 · 281 阅读 · 0 评论 -
9. 回文数
力扣链接 思路: 法一:数字转字符串,从两边往中间遍历,进行字符比较,也就是双指针。 法二:通过除法、模运算,得到数字的每一位,存入数组,再用双指针。 public boolean isPalindrome(int x) { String str =String.valueOf(x); int i = 0; int j = str.length()-1; while(i <= j && str.charAt(i) == str.cha.原创 2022-03-18 17:41:21 · 311 阅读 · 0 评论 -
205. 同构字符串
力扣链接 思路: 由于题目规定字符顺序不可变,说明串与串之间的字符都是一一对应的,每一个映射关系可以出现多次,但必须相同,例如e->a,后面e->b或者b->a就不行了。 根据映射关系唯一,可通过下标来标识,如果两字符构成的映射关系所对应的下标相同则符合。 public boolean isIsomorphic(String s, String t) { HashMap<Character,Integer> h1 = new HashMap&l.原创 2022-03-16 14:10:12 · 138 阅读 · 0 评论 -
409. 最长回文串
力扣链接 思路: 哈希表,统计串中字符的出现次数,其中次数为2的倍数即可加入回文串,这里不是指奇偶数之分,因为5虽然为奇数,但包含4可用,即次数为偶数的话,直接加入回文串,为奇数则减一。最后需要注意一点的,回文串中可以出现有且仅有一个单个字符。所以如果统计过程中出现奇数个数的字符,需要做标记。 public int longestPalindrome(String s) { //哈希数组 int[] hash= new int[58]; // 'Z' - 'a' .原创 2022-03-15 14:25:10 · 54 阅读 · 0 评论 -
557. 反转字符串中的单词 III
力扣链接 思路: 局部反转–双指针 class Solution { //String 操作 public String reverseWords(String s) { /*//逆序遍历 即可反转 String ans = ""; String word=""; int len = s.length(); for(int i = len - 1; i >= 0; i--) { .原创 2022-03-13 19:45:17 · 283 阅读 · 0 评论