567. 字符串的排列

给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。

换句话说,第一个字符串的排列之一是第二个字符串的子串。

示例1:

输入: s1 = “ab” s2 = “eidbaooo”

输出: True

解释: s2 包含 s1 的排列之一 (“ba”).

示例2:

输入: s1= “ab” s2 = “eidboaoo”

输出: False

注意:

输入的字符串只包含小写字母

两个字符串的长度都在 [1, 10,000] 之间

class Solution {
public boolean checkInclusion(String s1, String s2) {
if(s2.length()<s1.length())return false; int[] book=new int[26];
for (int i=0;i<s1.length();i++)
{
book[s1.charAt(i)-'a']++;
} int[] book1=new int[26];
for (int i=0;i<s1.length();i++)
{
book1[s2.charAt(i)-'a']++;
}
if(check(book,book1))return true; int left=0,right=s1.length();
while (right<s2.length())
{
book1[s2.charAt(left++)-'a']--;
book1[s2.charAt(right++)-'a']++;
if(check(book,book1))return true;
} return false;
} private boolean check(int[] book, int[] book1) {
for (int i=0;i<26;i++)
{
if(book[i]!=book1[i])return false;
}
return true;
}
}

最新文章

  1. zabbix自定义key
  2. 巩固一下:SpringMVC详细示例实战教程
  3. Android View坐标Left, Right, Top, Bottom
  4. SAE java应用读写文件(TmpFS和Storage)-----绝世好代码
  5. Android 与 IIS服务器身份验证
  6. Linux计划任务入门详解
  7. jQuery formValidator表单验证插件常见问题
  8. POJ 1122 FDNY to the Rescue! Floyd 打印路径就行了
  9. UML相关工具一览
  10. (一)spring MVC基本概念和流程
  11. AngularJS 模板
  12. C#隐式转换与显示转换
  13. python识别图片
  14. loadrunner参数化使用mysql数据源失败解决方法
  15. ASCII码字符串普通加密解密-android
  16. Linux vim文档操作
  17. webgl优化
  18. saltstack配置管理之states
  19. find_first_zero_bit在使用gcc 4.2.4 编译时,需要保护%eax
  20. 设置webstorm支持ES6语法

热门文章

  1. 三分钟快速搭建分布式高可用的Redis集群
  2. 深入理解CSS定位—浮动模型
  3. Algorithms - Quicksort - 快速排序算法
  4. java 实现仿照微信抢红包算法,实测结果基本和微信吻合,附demo
  5. poi excel自动转换成javabean 支持引用类型属性二级转换
  6. 快手4-5月Java岗面经
  7. ubuntu下安装perl GD模块
  8. django 中CBV和FBV 路由写法的区别
  9. 【Java】【JVM】Sychronized底层加锁原理详解
  10. Mysql-NULL转数字