列表

详情


2546. 执行逐位运算使字符串相等

给你两个下标从 0 开始的 二元 字符串 starget ,两个字符串的长度均为 n 。你可以对 s 执行下述操作 任意 次:

例如,如果 s = "0110" ,你可以选择 i = 0j = 2,然后同时将 s[0] 替换为 (s[0] OR s[2] = 0 OR 1 = 1),并将 s[2] 替换为 (s[0] XOR s[2] = 0 XOR 1 = 1),最终得到 s = "1110"

如果可以使 s 等于 target ,返回 true ,否则,返回 false

 

示例 1:

输入:s = "1010", target = "0110"
输出:true
解释:可以执行下述操作:
- 选择 i = 2 和 j = 0 ,得到 s = "0010".
- 选择 i = 2 和 j = 1 ,得到 s = "0110".
可以使 s 等于 target ,返回 true 。

示例 2:

输入:s = "11", target = "00"
输出:false
解释:执行任意次操作都无法使 s 等于 target 。

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: bool makeStringsEqual(string s, string target) { } };

cpp 解法, 执行用时: 20 ms, 内存消耗: 12.8 MB, 提交时间: 2023-01-23 09:19:11

class Solution {
public:
    bool makeStringsEqual(string s, string target) {
        return (s.find('1') == string::npos) == (target.find('1') == string::npos);
    }
};

golang 解法, 执行用时: 4 ms, 内存消耗: 6.2 MB, 提交时间: 2023-01-23 09:18:47

func makeStringsEqual(s, target string) bool {
	return strings.Contains(s, "1") == strings.Contains(target, "1")
}

java 解法, 执行用时: 0 ms, 内存消耗: 42.2 MB, 提交时间: 2023-01-23 09:18:29

class Solution {
    public boolean makeStringsEqual(String s, String target) {
        return s.contains("1") == target.contains("1");
    }
}

python3 解法, 执行用时: 40 ms, 内存消耗: 15.6 MB, 提交时间: 2023-01-23 09:18:17

class Solution:
    def makeStringsEqual(self, s: str, target: str) -> bool:
        return ('1' in s) == ('1' in target)

上一题