1784. 检查二进制字符串字段
https://leetcode.cn/problems/check-if-binary-string-has-at-most-one-segment-of-ones/ 给你一个二进制字符串 s ,该字符串 不含前导零 。 如果 s 包含 零个或一个由连续的 ‘1’ 组成的字段 ,返回 true 。否则,返回 false 。 如果 s 中 由连续若干个 ‘1’ 组成的字段 数量不超过 1,返回 true 。否则,返回 false 。 示例 1:
输入:s = "1001"输出:false解释:由连续若干个 '1' 组成的字段数量为 2,返回 false
示例 2:
输入:s = "110"输出:true
提示:
1 <= s.length <= 100
s [i] 为 ‘0’ 或 ‘1’
s [0] 为 ‘1’
# 题解
class Solution {public: bool checkOnesSegment(string s) { int fl ...
777. 在LR字符串中交换相邻字符
https://leetcode.cn/problems/swap-adjacent-in-lr-string/ 在一个由 ‘L’ , ‘R’ 和 ‘X’ 三个字符组成的字符串(例如 "RXXLRXRXL")中进行移动操作。一次移动操作指用一个 "LX" 替换一个 "XL",或者用一个 "XR" 替换一个 "RX"。现给定起始字符串 start 和结束字符串 end,请编写代码,当且仅当存在一系列移动操作使得 start 可以转换成 end 时, 返回 True。 示例 :
输入: start = "RXXLRXRXL", end = "XRLXXRRLX"输出: True解释:我们可以通过以下几步将start转换成end:RXXLRXRXL ->XRXLRXRXL ->XRLXRXRXL ->XRLXXRRXL ->XRLXXRRLX
提示:
1 <= len(start) = len(end) <= 10 ...
1694. 重新格式化电话号码
https://leetcode.cn/problems/reformat-phone-number/ 给你一个字符串形式的电话号码 number 。number 由数字、空格 ’ '、和破折号 ‘-’ 组成。 请你按下述方式重新格式化电话号码。 首先,删除 所有的空格和破折号。 其次,将数组从左到右 每 3 个一组 分块,直到 剩下 4 个或更少数字。剩下的数字将按下述规定再分块: 2 个数字:单个含 2 个数字的块。 3 个数字:单个含 3 个数字的块。 4 个数字:两个分别含 2 个数字的块。 最后用破折号将这些块连接起来。注意,重新格式化过程中 不应该 生成仅含 1 个数字的块,并且 最多 生成两个含 2 个数字的块。 返回格式化后的电话号码。 示例 1:
输入:number = "1-23-45 6"输出:"123-456"解释:数字是 "123456"步骤 1:共有超过 4 个数字,所以先取 3 个数字分为一组。第 1 个块是 "123" 。步骤 2:剩下 3 个数字,将它们放入单个含 3 个 ...
华勤集团
时间:2022/9/30 测评设置可复用之前答过的记录,好评!!! 笔试三十道,三十分钟,选择加判断
面试题 01.08. 零矩阵
https://leetcode.cn/problems/zero-matrix-lcci/ 编写一种算法,若 M × N 矩阵中某个元素为 0,则将其所在的行与列清零。 示例 1:
输入:[[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]
示例 2:
输入:[[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]
# 题解
class Solution {public: void setZeroes(vector<vector<int>>& matrix) { vector<int> h(matrix[0].size(),0); vector<int> s(matrix.size(),0); for(int i=0;i<matrix.size();i++){ for(int j=0;j< ...
小天才笔试
时间:2022/9/29 8:00~20:00 一小时随到随答 20 道单选 5 道多选
面试题 01.09. 字符串轮转
https://leetcode.cn/problems/string-rotation-lcci/ 字符串轮转。给定两个字符串 s1 和 s2,请编写代码检查 s2 是否为 s1 旋转而成(比如,waterbottle 是 erbottlewat 旋转后的字符串)。 示例 1:
输入:s1 = "waterbottle", s2 = "erbottlewat"输出:True
示例 2:
输入:s1 = "aa", s2 = "aba"输出:False
提示:
字符串长度在 [0, 100000] 范围内。
说明:
你能只调用一次检查子串的方法吗?
# 题解
class Solution {public: bool isFlipedString(string s1, string s2) { return s1.size() == s2.size() && (s1 + s1).find(s2) != string::npos; ...
面试题 17.09. 第 k 个数
https://leetcode.cn/problems/get-kth-magic-number-lcci/ 有些数的素因子只有 3,5,7,请设计一个算法找出第 k 个数。注意,不是必须有这些素因子,而是必须不包含其他的素因子。例如,前几个数按顺序应该是 1,3,5,7,9,15,21。 示例 1:
输入: k = 5输出: 9
# 题解
class Solution {public: int getKthMagicNumber(int k) { vector<int> factors = {3, 5, 7}; unordered_set<long> seen; priority_queue<long, vector<long>, greater<long>> heap; seen.insert(1L); heap.push(1L); int ugly = 0; for (in ...
百度笔试
时间:2022/9/27 19:00~21:00 单选 15 道 不定项选择 5 道 3 道编程题 一、给定一个长度为 n 的数组,请把这个数组分成 k 组,每个元素在某一组中出现且在一组中仅出现一次,求分好的 k 组数平均值之和的最小值 0.1 二、给定 n 个桃,每个桃由酸度 ai 和甜度 bi,仅可交换其中一个桃的酸甜度,求所有桃的甜度乘积最大值 AC 三、给定一个数组,第 i 为表示树的第 i 个节点的颜色,颜色仅有红蓝两种,给定树的边,边权值定义为删除该边后的两个子树中同色联通块数量之差的绝对值,求该树的边权值之和
面试题 01.02. 判定是否互为字符重排
https://leetcode.cn/problems/check-permutation-lcci/ 给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。 示例 1:
输入: s1 = "abc", s2 = "bca"输出: true
示例 2:
输入: s1 = "abc", s2 = "bad"输出: false
说明:
0 <= len(s1) <= 100
0 <= len(s2) <= 100
# 题解
排序,哈希都可以
class Solution {public: bool CheckPermutation(string s1, string s2) { sort(s1.begin(),s1.end()); sort(s2.begin(),s2.end()); if(s1==s2) return true; ...