摘要: lc 87 Scramble String 我们需要检查所有cut字符串的位置 即s1(0, 1, 2, ..., n-1), s2(0, 1, 2, ..., n-1) 设cut点为i,将字符串分为(0~i-1),(i~n-1) 1=<i<=n-1( i=0的情况直接用equals(),判断s1s 阅读全文
posted @ 2019-06-01 11:23 南山南北秋悲 阅读(142) 评论(0) 推荐(0)
摘要: lc49 Group Anagram 逻辑很简单,就是统计字母出现次数,然后将完全相同的字符串放入同一list 关键是怎么实现 统计的部分,可以通过将string排序,Arrays.sort(),或者像之前int[26]一样, 那么如何一次遍历,就能将相同字符串放入一个list呢? 这里用到了Has 阅读全文
posted @ 2019-06-01 10:59 南山南北秋悲 阅读(256) 评论(0) 推荐(0)
摘要: lc242 Valid Anagram 直接统计每种字母出现次数即可 阅读全文
posted @ 2019-06-01 10:32 南山南北秋悲 阅读(228) 评论(0) 推荐(0)
摘要: lc290 Word Pattern 有点类似lc205 同形字符串,思路也一样,就是比较相同字母映射的对象是否相同 题目提醒了,这是双射,即一一对应,比较容易想到的是用两个hashmap,源字符串和目标字符串分别做key值 不过可以参考lc205解法,只用一个hashmap, 这里有个小trick 阅读全文
posted @ 2019-05-31 16:13 南山南北秋悲 阅读(134) 评论(0) 推荐(0)
摘要: lc205 Isomorphic Strings 思路就是检测s中相同字母在不同位置映射到t中相应位置的字母是否相同 举例来说,egg adj,第一个g对应位置的字母是d,而第二个g对应位置的字母是j,返回false 怎么检查是否相同呢? 最容易想到的就是HashMap<Character, Cha 阅读全文
posted @ 2019-05-29 15:41 南山南北秋悲 阅读(128) 评论(0) 推荐(0)
摘要: 两个for 第一个for将每一个元音依次存放进一个char数组 第二个for,每检测到元音,就从char数尾部开始,依次赋值 如何检测元音呢?当然写一个冗长的if(),不过我们有更好的选择 hashset的contains, 或者String自带的contains, 或者建一个int[128],因为 阅读全文
posted @ 2019-05-29 15:23 南山南北秋悲 阅读(160) 评论(0) 推荐(0)
摘要: lc151 Reverse Words in a String 利用split(),将String分成一个String[],可以用正则表达式"\\s+"(第一个\转义,\s表示空格,+表示多个空格),也可以直接用" ",第二种方法快一些 然后按题意翻转即可,从后面遍历String,一次将元素放入新S 阅读全文
posted @ 2019-05-29 15:03 南山南北秋悲 阅读(178) 评论(0) 推荐(0)
摘要: lc344 Reverse String 双指针, 一个在前,一个在后,交换两者所指元素 阅读全文
posted @ 2019-05-29 15:00 南山南北秋悲 阅读(110) 评论(0) 推荐(0)
摘要: lc383 Ransom Note 两个for 第一个记录sourse字符串每种字母出现次数 第二个看现有字母是否能够填满target 阅读全文
posted @ 2019-05-29 09:28 南山南北秋悲 阅读(114) 评论(0) 推荐(0)
摘要: lc387 First Unique Character in a String 两种思路 1)统计各个字母出现的次数,然后再遍历一次原数组,输出只出现一次元素的index 可以用hashmap统计次数,也可以申请一个大小为26的int数组 2)双指针 一个快指针,向后遍历统计字母出现次数,一个慢指 阅读全文
posted @ 2019-05-29 09:23 南山南北秋悲 阅读(186) 评论(0) 推荐(0)