301. Remove Invalid Parentheses删除无效的括号

艾恩凝

个人博客  https://aeneag.xyz/ 

公众号 技术乱舞

今天的题自己感觉有点难

2021/10/15

题目

https://leetcode-cn.com/problems/remove-invalid-parentheses/

题目分析

又是作废的一天,BFS,好想法,参考网上大佬的,为什么这么菜

删除字符串的一个节点,看看是否可以

题解

class Solution {
public:
    bool Is_Valid(const string& s){
        int count = 0;
        for( char c : s){
            if(c == '(')++count;
            if(c == ')')--count;
            if(count < 0)return false;
        }
        return count == 0 ;
    }
    vector<string> removeInvalidParentheses(string s) {
        unordered_set<string> word{s};
        while(true){
            unordered_set<string> res;
            for(auto& w : word){
                if(Is_Valid(w))
                    res.insert(w);
            }
            if(!res.empty())           
                return vector<string>(res.begin(),res.end());
            unordered_set<string> next_word;
            for (const string& t : word) {
                for (int i = 0; i < t.length(); ++i) {
                    if (t[i] == '(' || t[i] == ')') {
                        next_word.insert(t.substr(0, i) + t.substr(i+1,t.size()-i-1));
                    }
                }
            }
            word = next_word;
        }
        return {};
    }
};

 

欢迎关注 #公众号:技术乱舞 一起交流

灵魂碰撞

 

### 关于 .386 文件中的无效字符错误及其解决方案 当处理 `.386` 文件或其他类型的文件时,遇到无效字符的问题通常是由于编码不匹配或特殊字符的存在引起的。以下是几种可能的原因及相应的解决办法: #### 1. 编码问题 如果文件包含非标准的ASCII字符或特定编码下的非法字符,则可能会引发此类错误。建议尝试转换文件编码为UTF-8无BOM格式。 对于文本编辑器支持的情况,可以按照如下操作: ```plaintext 打开文件 -> 另存为... -> 更改编码方式为 UTF-8 without BOM -> 保存 ``` #### 2. 清除不可打印字符 某些情况下,文件中可能存在不可见但又不符合规范的控制字符(如0x12),这些字符通常来自复制粘贴过程或是不同软件之间的兼容性差异。可以通过编程手段去除这类字符[^2]。 Python脚本示例用于清理XML文档内的无效字符: ```python import re def clean_invalid_xml_chars(xml_string): # 定义正则表达式模式来查找并替换掉所有不在合法范围内的Unicode字符 invalid_char_pattern = r'[^\x09\x0A\x0D\x20-\uD7FF\uE000-\uFFFD]' cleaned_string = re.sub(invalid_char_pattern, '', xml_string) return cleaned_string ``` #### 3. 配置文件路径与命名验证 确保`.386`文件以及任何关联配置文件位于项目的正确位置,并遵循Visual Studio期望的标准命名约定。特别是对于App.config这样的配置文件来说,其放置的位置不对也可能引起类似的解析失败情况[^1]。 #### 4. IDE设置调整 有时开发环境本身的设置也会影响对文件内容的理解。例如,在Visual Studio中编译C#项目时遇到了因源代码中含有未定义字符而导致的警告信息,这可能是由IDE内部使用的默认字符集所造成的[^4]。此时应检查IDE的相关选项,必要时更改默认字符集以适应实际需求。 通过上述措施之一或多者组合应用,应该能够有效缓解乃至彻底消除`.386`文件中存在的无效字符带来的困扰。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艾恩凝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值