Open
Description
242.有效字母异位词
首先需要确定题目的描述有效字母异位词的含义
刚开始结合例子的理解是字母按顺序交换,1和2换位,3和4换位,依次类推
在这个思路下想的是首先我遍历原串按照次序存储字母,遍历目标串依次交换对比刚才的存储顺序。
后来看评论才理解,易位词指的是相同数量和种类的字母的不同排列,次序不一定是1和2互换,3和4互换,相对来说更简单了,所以我们理解题目
含义很重要,需要先理解题目在去做题。
下面是思路:
1.首先遍历原串s, 把字母存到哈希表source_hash里面,key是字母,value是出现次数
2.遍历目标串t,依次查寻目标串的字母是否出现在source_hash中,如果没出现直接返回false,如果找到了,将其对应的值将其减一,清楚哈希表中值为空的数据
3.遍历完成之后,检查source_hash是否为空,为空说明字符种类和数量一致返回true,不为空返回false。
优化
将哈希表转化为数组,字母的ascll码做下标,出现字数作为数组元素,进一步优化。
-
删除排序链表中的重复元素
该问题比较简单,因为链表已经排序,只需要顺序检查next节点的值是否等于当前节点的值,如果相等,删除next节点,移动指针到next节点的next节点,需要注意的问题是注意链表的边界条件,头结点和尾节点的问题。
看到一个好的方法是使用递归的方案去解决删除重复节点的思路。 -
最长同值路径
该问题想到用递归去求解,但是实际递归代码实现有问题,还需要进一步优化。
Metadata
Metadata
Assignees
Labels
No labels