美文网首页
LeetCode #1016 Binary String Wit

LeetCode #1016 Binary String Wit

作者: air_melt | 来源:发表于2022-02-20 20:15 被阅读0次

    1016 Binary String With Substrings Representing 1 To N 子串能表示从 1 到 N 数字的二进制串

    Description:
    Given a binary string s and a positive integer n, return true if the binary representation of all the integers in the range [1, n] are substrings of s, or false otherwise.

    A substring is a contiguous sequence of characters within a string.

    Example:

    Example 1:

    Input: s = "0110", n = 3
    Output: true

    Example 2:

    Input: s = "0110", n = 4
    Output: false

    Constraints:

    1 <= s.length <= 1000
    s[i] is either '0' or '1'.
    1 <= n <= 10^9

    题目描述:
    给定一个二进制字符串 s 和一个正整数 n,如果对于 [1, n] 范围内的每个整数,其二进制表示都是 s 的 子字符串 ,就返回 true,否则返回 false 。

    子字符串 是字符串中连续的字符序列。

    示例 :

    示例 1:

    输入:s = "0110", n = 3
    输出:true

    示例 2:

    输入:s = "0110", n = 4
    输出:false

    提示:

    1 <= s.length <= 1000
    s[i] 不是 '0' 就是 '1'
    1 <= n <= 10^9

    思路:

    模拟
    由于 n << 1 一定包含 n
    只用检查大于 n << 1 的一半即可
    时间复杂度为 O(nm), 空间复杂度为 O(1), 其中 m 为 s 的长度

    代码:
    C++:

    class Solution
    {
    public:
        bool queryString(string s, int n) 
        {
            for (int i = (n >> 1) + 1; i <= n; i++) 
            {
                string cur = bitset<32>(i).to_string();
                cur.erase(0, cur.find('1'));
                if (s.find(cur) == -1) return false;
            }
            return true;
        }
    };
    

    Java:

    class Solution {
        public boolean queryString(String s, int n) {
            for (int i = (n >>> 1) + 1; i <= n; i++) if (!s.contains(Integer.toBinaryString(i))) return false;
            return true;
        }
    }
    

    Python:

    class Solution:
        def queryString(self, s: str, n: int) -> bool:
            return all('{:b}'.format(i) in s for i in range(1, n + 1))
    

    相关文章

      网友评论

          本文标题:LeetCode #1016 Binary String Wit

          本文链接:https://www.haomeiwen.com/subject/fpmvlrtx.html