摘要:
题目 字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。 示例1: 示例2: 提示:字符串长度在[0, 100000]范围内。 说明: 你能只调用一次检查子串的方法吗? 思路 如为旋转,则s2一定在s1 阅读全文
摘要:
题目 我们把只包含因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。 示例: 说明: 1 是丑数。 n 不超过1690。 思路一:暴力(超时) 依次判断每个数是否是丑数。 代码 阅读全文
摘要:
题目 在一个 m n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物? 示例 1: 提示: 0 & grid) { if 阅读全文
摘要:
题目 给你一个字符串 s ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 'a','e','i','o','u' ,在子字符串中都恰好出现了偶数次。 示例 1: 示例 2: 示例 3: 提示: 1 pos(1 << 5, 1); pos[0] = 0; for (int i = 0; 阅读全文
摘要:
题目 给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。 示例 1: 示例 2: 注意: 字符串只包含从 a z 的小写字母。字符串的最大长度是50000。 思路 头尾双指针,从两边向中间检查头尾指针指向字符是否相等,如果不相等,则跳过头指针或尾指针,继续判断中间字符字符串是否满足 阅读全文
摘要:
题目 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。 示例 1: 提示:0 = 2),当i = 1,则dp[1] = 阅读全文
摘要:
题目 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 示例 1: 示例 2: 提示: 0 & nums) { string res; sort(nums.begin(), nums.end(), cmp); for (auto a : nums) { r 阅读全文
摘要:
题目 数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。 请写一个函数,求任意第n位对应的数字。 示例 1: 示例 2: 限制:0 <= n < 2^31 思路 从具体例子来分析,比如求第 阅读全文
摘要:
题目 给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。 示例: 本题同 "【剑指Offer】面试题43. 1~n整数中1出现的次数" 思路 通过一个例子来找到规律,比如数字21345,我们把1 21345分为两部分,一段是1 1345,另一段是1346 21345。 对于1 阅读全文
摘要:
题目 输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。 例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。 示例 1: 示例 2: 限制:1 0) return 1; int numFirst = 0; if (first 1) numFir 阅读全文