字符串
CodersCoder
有人见星辰,有人见尘埃。
展开
-
算法--验证回文串
描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例示例 1:输入: “A man, a plan, a canal: Panama”输出: true示例 2:输入: “race a car”输出: false分析使用双指针。初始时,左右指针分别指向字符串的两侧,随后我们不断地将这两个指针相向移动,每次移动一步,并判断这两个指针指向的字符是否相同。当这两个指针相遇时,就说明是回文串。实现class原创 2020-09-10 19:04:07 · 148 阅读 · 0 评论 -
算法--二进制求和
描述给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。示例示例 1:输入: a = “11”, b = “1”输出: “100”示例 2:输入: a = “1010”, b = “1011”输出: “10101”提示:每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。1 <= a.length, b.length <= 10^4字符串如果不是 “0” ,就都不含前导零。分析最简单的做法:先将 aa 和 bb 转化成十进原创 2020-08-30 16:02:24 · 363 阅读 · 0 评论 -
算法--电话号码的字母组合
描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].分析以示例入手分析:实现private String letterMap[] = { " ", //0 "", //1 "ab原创 2020-08-28 18:57:38 · 177 阅读 · 0 评论 -
算法--最后一个单词的长度
描述给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。示例示例:输入: “Hello World”输出: 5分析就是简单的字符串遍历步骤:1.使用trim()去掉字符串左右两边的空格2.将字符串从右往左遍历,遇到第一个空格,就能定位到最后一个单词。实现public int len原创 2020-08-26 18:42:26 · 121 阅读 · 0 评论 -
算法--整数反转
描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。分析用图来表示:按照思路进行编码即可。实现public int reverse(int x) { in原创 2020-08-24 21:35:07 · 217 阅读 · 0 评论 -
算法--外观数列
描述给定一个正整数 n(1 ≤ n ≤ 30),输出外观数列的第 n 项。注意:整数序列中的每一项将表示为一个字符串。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:111211211111221说明:第一项是数字 1描述前一项,这个数是 1 即 “一个 1 ”,记作 11描述前一项,这个数是 11 即 “两个 1 ” ,记作 21描述前一项,这个数是 21 即 “一个 2 一个 1 ” ,记作 1211原创 2020-08-21 20:41:40 · 140 阅读 · 0 评论 -
算法--正则表达式匹配
描述给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例示例 1:输入: s = “aa” p = “a”输出: false 解释: “a” 无法匹配 “aa” 整个字符串。示例 2:输入:原创 2020-08-17 18:26:52 · 156 阅读 · 0 评论 -
算法--实现 strStr()
描述实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例示例 1: 输入: haystack = “hello”, needle = “ll”输出: 2示例 2: 输入: haystack = “aaaaa”, needle = “bba”输出: -1说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很原创 2020-08-16 19:00:59 · 118 阅读 · 0 评论 -
算法--字符串转整数
描述请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响。注意:假如该字符串中的第一个非空格字符不是一个有效原创 2020-08-13 19:32:12 · 126 阅读 · 0 评论 -
算法--回文数
描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例示例 1: 输入: 121 输出: true示例 2: 输入: -121 输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121-。因此它不是一个回文数。示例 3: 输入: 10 输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。分析1.判断是否是0和负数开始,直接排除2.通过取整和取余操作获取整数中对应的数字进行比较。简单实现pub原创 2020-08-12 19:10:56 · 167 阅读 · 0 评论 -
算法--无重复字符的最长子串
描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3: 输入: “pwwkew” 输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。 请注意,你的答案必须是子串 的长度,“pwke” 是一个子序列,不是子串。原创 2020-08-07 18:03:49 · 162 阅读 · 0 评论 -
算法--Z 字形变换
描述将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/zigzag原创 2020-08-10 18:38:39 · 125 阅读 · 0 评论