首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    leetcode-49. 字母异位词分组

    这道题要将字母异位词给组合在一起。首先要知道字母异位词是不同的词但所包含的字母类型和个数是一样的。因此,我们可以想到用 HashMap 来防止重复,看题目要求,结果要的是一个储存集合的数组集合中,所以可以用 ArrayList<List<String>> 来存储最终结果。   既然要使用 map 来储存结果,那么用什么来作为唯一的 key 呢?我们可以发现字母异位词不就是相同个数的相同字母不同顺序组合起来的单词,因此我们可以将单个字符串转成字符数组并排序,举个例子,假设传进来的字符串数组中有 eat 和 tea,按要求这两个要排序在一起的,怎么样才能让他们有相同的 key 呢?我们可以将其的 key 统一设置为按字母顺序的 aet,因此用到了 Arrays.sort 方法可以做到。不同的单词只要是字母异位词都会加到相同的键值对中,即在相同 key 的 map 中。   以此类推,将所有的字符串遍历完返回也就完成了字母异位词的组合。

    02

    leetcode-3. 无重复字符的最长子串

    这道题要明确的一点是求最长子串而不是最长子序列。先对传进来的字符串长度进行判断,若传进来的字符串长度小于等于 1,则直接返回其长度即可,定义开始指针的位置,以及初始化最长字串的记录值,并将字符串转换为字符数组。开始遍历字符数组,外层从 1 开始,里层从 0 开始。   如果前后指针的字符一样,则重新定义开始的位置为当前的位置 +1,并跳出本次循环。每两次循环执行完后都要让当前字串长度与已记录的最长子串长度进行比较,由于 start 从 0 开始的,求真正的长度时要 +1,用三目运算判断当前最长的子串与已记录的最长子串的比较且重新定义最长子串,可能还是原来的最长,也可能是当前子串最长。待遍历完成后记录的最长字串即为所求,返回即可。

    04

    c语言基础学习05_数组和字符串

    ============================================================================= 涉及到的知识点有:for循环有两种写法、数组、一维数组定义与使用、一维数组的初始化、 如何得到一个一维数组的成员数量、查找出一维数组中成员最大值、查找一维数组的第二大元素的值、 一维数组的逆置、一维数组排序:冒泡排序、二维数组、二维数组的初始化、三维数组初始化、三维数组排序、 字符串与字符数组、字符数组的初始化、字符数组的使用(以及字符数组和字符串的区别)、去除输出字符串结尾处的空格、 现在要去掉字符串最右面的空格,而不能去掉字符串中间的空格呢、随机数产生函数rand与srand、 自动的变种子、控制随机数的范围、用scanf来输入字符串、如何把两次输入的字符串放到新的字符串里去、 scanf缓冲区溢出的危险的解释、字符串的逆置。 ============================================================================= for循环有两种写法:

    02
    领券