#### 字符串

242. Valid Anagram (Easy)

`s = "anagram", t = "nagaram", return true.s = "rat", t = "car", return false.`

``public boolean isAnagram(String s, String t) {``    int[] cnts = new int[26];``    for (char c : s.toCharArray()) {``        cnts[c - 'a']++;``    }``    for (char c : t.toCharArray()) {``        cnts[c - 'a']--;``    }``    for (int cnt : cnts) {``        if (cnt != 0) {``            return false;``        }``    }``    return true;``}``

409. Longest Palindrome (Easy)

`Input : "abccccdd"Output : 7Explanation : One longest palindrome that can be built is "dccaccd", whose length is 7.`

``public int longestPalindrome(String s) {``    int[] cnts = new int[256];``    for (char c : s.toCharArray()) {``        cnts[c]++;``    }``    int palindrome = 0;``    for (int cnt : cnts) {``        palindrome += (cnt / 2) * 2;``    }``    if (palindrome < s.length()) {``        palindrome++;   // 这个条件下 s 中一定有单个未使用的字符存在，可以把这个字符放到回文的最中间``    }``    return palindrome;``}``

205. Isomorphic Strings (Easy)

`Given "egg", "add", return true.Given "foo", "bar", return false.Given "paper", "title", return true.`

``public boolean isIsomorphic(String s, String t) {``    int[] preIndexOfS = new int[256];``    int[] preIndexOfT = new int[256];``    for (int i = 0; i < s.length(); i++) {``        char sc = s.charAt(i), tc = t.charAt(i);``        if (preIndexOfS[sc] != preIndexOfT[tc]) {``            return false;``        }``        preIndexOfS[sc] = i + 1;``        preIndexOfT[tc] = i + 1;``    }``    return true;``}``

647. Palindromic Substrings (Medium)

`Input: "aaa"Output: 6Explanation: Six palindromic strings: "a", "a", "a", "aa", "aa", "aaa".`

``private int cnt = 0;``public int countSubstrings(String s) {``    for (int i = 0; i < s.length(); i++) {``        extendSubstrings(s, i, i);     // 奇数长度``        extendSubstrings(s, i, i + 1); // 偶数长度``    }``    return cnt;``}``private void extendSubstrings(String s, int start, int end) {``    while (start >= 0 && end < s.length() && s.charAt(start) == s.charAt(end)) {``        start--;``        end++;``        cnt++;``    }``}``

9. Palindrome Number (Easy)

``public boolean isPalindrome(int x) {``    if (x == 0) {``        return true;``    }``    if (x < 0 || x % 10 == 0) {``        return false;``    }``    int right = 0;``    while (x > right) {``        right = right * 10 + x % 10;``        x /= 10;``    }``    return x == right || x == right / 10;``}``

696. Count Binary Substrings (Easy)

`Input: "00110011"Output: 6Explanation: There are 6 substrings that have equal number of consecutive 1's and 0's: "0011", "01", "1100", "10", "0011", and "01".`

``public int countBinarySubstrings(String s) {int preLen = 0, curLen = 1, count = 0;``    for (int i = 1; i < s.length(); i++) {``        if (s.charAt(i) == s.charAt(i - 1)) {``            curLen++;``        } else {``            preLen = curLen;``            curLen = 1;``        }``        if (preLen >= curLen) {``            count++;``        }``    }``    return count;``}``

`s1 = AABCD, s2 = CDAAReturn : true`

s1 进行循环移位的结果是 s1s1 的子字符串，因此只要判断 s2 是否是 s1s1 的子字符串即可。

`s = "abcd123" k = 3Return "123abcd"`

`s = "I am a student"return "student a am I"`

## LeetCode刷题指南（字符串）的更多相关文章

1. LeetCode刷题总结-字符串篇

本文梳理对LeetCode上有关字符串习题的知识点,并给出对应的刷题建议.本文建议刷题的总数为32题.具体知识点如下图: 1.回文问题 题号:5. 最长回文子串,难度中等 题号:214. 最短回文串, ...

2. leetcode刷题指南

转载自:http://blog.csdn.net/lnho2015/article/details/50962989 以下是我个人做题过程中的一些体会: 1. LeetCode的题库越来越大,截止到目 ...

3. LeetCode 刷题指南（1）：为什么要刷题

虽然刷题一直饱受诟病,不过不可否认刷题确实能锻炼我们的编程能力,相信每个认真刷题的人都会有体会.现在提供在线编程评测的平台有很多,比较有名的有 hihocoder,LintCode,以及这里我们关注的 ...

4. leetCode刷题(将字符串转成W形状的字符串再以Z形字符串输出)

The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

5. LeetCode刷题专栏第一篇--思维导图&amp;时间安排

昨天是元宵节,过完元宵节相当于这个年正式过完了.不知道大家有没有投入继续投入紧张的学习工作中.年前我想开一个Leetcode刷题专栏,于是发了一个投票想了解大家的需求征集意见.投票于2019年2月1日 ...

6. Leetcode刷题记录（python3）

Leetcode刷题记录(python3) 顺序刷题 1~5 ---1.两数之和 ---2.两数相加 ---3. 无重复字符的最长子串 ---4.寻找两个有序数组的中位数 ---5.最长回文子串 6- ...

7. LeetCode刷题总结-数组篇（下）

本期讲O(n)类型问题,共14题.3道简单题,9道中等题,2道困难题.数组篇共归纳总结了50题,本篇是数组篇的最后一篇.其他三个篇章可参考: LeetCode刷题总结-数组篇(上),子数组问题(共17 ...

8. LeetCode刷题总结-树篇（中）

本篇接着<LeetCode刷题总结-树篇(上)>,讲解有关树的类型相关考点的习题,本期共收录17道题,1道简单题,10道中等题,6道困难题. 在LeetCode题库中,考察到的不同种类的树 ...

9. LeetCode刷题预备知识(二)

Python四大数据结构的属性及方法 在LeetCode刷题预备知识一中我们掌握了常见的内置函数,和四大数据结构的基本概念: 但只掌握这些还远远不够,我们还需了解四大数据结构的属性及方法才能更高效快速 ...

## 随机推荐

1. Tools - VirtualBox

为CentOS虚拟机安装增强功能 启动CentOS虚拟机,点击"菜单 -> 设备 -> 安装增强功能". vboxadd的映像文件将会被挂载到虚拟机,在桌面也可以看到, ...

2. Android -- 桌面悬浮，QQ管家火箭实现

续上一篇博客<Android -- 桌面悬浮,仿360>,传送门:http://www.cnblogs.com/yydcdut/p/3909888.html,在此代码上继续添加实现. 比起 ...

3. c# 自己制作一个简单的项目倒计时器

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

4. CSS3 概览 更新时间 2014-0412-1317

CSS3 概览 CSS3可以划分为:文字.边框模型.背景.动画等. CSS3颜色模块 CSS2.1的时候可以使用4种颜色方式,直接使用颜色名,如 redRGB值,如 rgb(0,90,255)RGB百 ...

5. 5. repeater图片放大

当把鼠标放在一张小图片上时,图片会自动放大,离开时它变小. 我们在静态页面中可以用jQuery来操作.如下为html中的源码. <!DOCTYPE html PUBLIC "-//W3 ...

6. ThinkPHP 3.1.2 模板中的基本语法&lt;1&gt;

# # ThinkPHP 3.1.2 模板中的基本语法 一.传统的方式,导入CSS和JS文件 1.css link js scr <link rel='stylesheet' type='tex ...

7. web中spring框架启动流程第一发

web.xml中springmvc相关配置如下:<servlet> <servlet-name>springmvc</servlet-name> <servl ...

8. Web应用增加struts2支持

编辑Web应用的web.xml配置文件,配置Struts2的核心Filter.下面是增加了Struts2的核心 Filter配置的web.xml配置文件的代码片段. <!-- 定义struts2 ...

9. python 方法调用

获取当前时间 today=time.strftime('%Y-%m-%d',time.localtime(time.time())) 取得时间相关的信息的话,要用到python time模块,pyth ...

10. PHP 4种输出的方式

<?php //测试用的数组 \$info = array('11'=>'aaa', '22'=>'bbb', '33'=>'ccc'); //第一种,将整个数组作为一个对象输出 ...