482专题

leetcode解题思路分析(五十六)476 - 482 题

数字的补数 给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。 正整数和1异或即按位取反,所以得到恰好大于该数的1111即可 class Solution {public:int findComplement(int num) {int ret = 1;while (ret < num){ret = (ret << 1) + 1;}ret ^= num;return ret;}}

Leetcode 482. 密钥格式化

给定一个许可密钥字符串 s,仅由字母、数字字符和破折号组成。字符串由 n 个破折号分成 n + 1 组。你也会得到一个整数 k 。 我们想要重新格式化字符串 s,使每一组包含 k 个字符,除了第一组,它可以比 k 短,但仍然必须包含至少一个字符。此外,两组之间必须插入破折号,并且应该将所有小写字母转换为大写字母。 返回 重新格式化的许可密钥 。 示例 1: 输入:S = “5F3Z-2e-

【Python】【难度:简单】Leetcode 482. 密钥格式化

有一个密钥字符串 S ,只包含字母,数字以及 '-'(破折号)。其中, N 个 '-' 将字符串分成了 N+1 组。 给你一个数字 K,请你重新格式化字符串,除了第一个分组以外,每个分组要包含 K 个字符;而第一个分组中,至少要包含 1 个字符。两个分组之间需要用 '-'(破折号)隔开,并且将所有的小写字母转换为大写字母。 给定非空字符串 S 和数字 K,按照上面描述的规则进行格式化。