当前位置: 首页 > news >正文

【leetcode hot 100 438】找到字符串中所有字母异位词

解法一:排序后循环比较

class Solution {
    public List<Integer> findAnagrams(String s, String p) {
        List<Integer> list = new LinkedList<>();
        char[] chars = p.toCharArray();
        Arrays.sort(chars);
        String p_ = new String(chars);
        for(int i=0; i+p_.length()-1<s.length(); i++){
            String sub = s.substring(i, i+p_.length());
            chars = sub.toCharArray();
            Arrays.sort(chars);
            sub = new String(chars);
            if(sub.equals(p_)){
                list.add(i);
            }
        }
        return list;
    }
}

注意:

  • String p_ = new String(Arrays.sort(p.toCharArray()))不行,Arrays.sort(chars)改变的是chars,不是返回值。
  • s.substring(i,j)提取[i, j)处的字符串。
  • 防止超出范围,条件判断为i+p_.length()-1<s.length()
  • 字符串的判断,不是==,而是sub.equals(p_)
  • String->char数组:char[] chars = s.toCharArray(); char数组->String:s = new String(chars)
  • List->数组:int[] nums = list.toArray(); 数组->List:List list = nums.asList()
http://www.dtcms.com/a/43962.html

相关文章:

  • Burp Suite Professional 2024版本安装激活指南
  • 鸿蒙HarmonyOS 开发简介
  • 数据库MySQL,在终端输入后,提示不是内部命令等
  • 【Redis】Redis 入门
  • NO.21十六届蓝桥杯备战|一维数组|范围for|memset|memcpy(C++)
  • 数据库复习
  • unity pico开发 三 移动 旋转 传送
  • Python深度学习环境配置(Pytorch、CUDA、cuDNN),包括Anaconda搭配Pycharm的环境搭建以及基础使用教程(保姆级教程,适合小白、深度学习零基础入门)
  • 经验总结:使用vue3测试后端接口的模板
  • 【京准时钟】网络时间同步服务器对数据库的重要性
  • 【JAVA】阿里云百炼平台对接DeepSeek-V3大模型使用详解
  • DOM Node
  • 鸿蒙NEXT开发-Navigation组件导航
  • Python - Python操作Redis
  • JavaWeb后端基础(1)
  • 【Linux】Linux的基本指令(2)
  • 数据库数据恢复—SQL Server附加数据库报错“错误 823”怎么办?
  • PHP面试题--后端部分
  • 浅谈人工智能之Windows安装llama factory
  • vue使用a-table设置自定义合并字段实现某字段值相同则合并行
  • pyQT5简易教程(一):制作一个可以选择本地图片并显示的桌面应用
  • 455. 分发饼干(LeetCode)
  • Oracle 数据变化量查询
  • mac下载MAMP6.8.1;解决mac使用小皮面板安装php7.4
  • 动态表头导出EasyExcel
  • 基于C语言对CAPL语法基础的理解
  • 天梯赛:L2-001 紧急救援
  • 6.6.5 SQL访问控制
  • 第16届蓝桥杯模拟赛题解 第三场 Java
  • stm32使用(无线串口)实现收发、判断数据+DMA(HAL库)