HerobrineMC 2024-07-22 13:09 采纳率: 50%
浏览 1
已结题

(标签-c++|关键词-括号匹配)

给定
T 个仅包含大写字母 A,B,C 的字符串
s。问你是否能够通过将每个 A,B,C 换成 (,) 中的一个(同一个字母必须要换成同一个字符),使得最后得到的括号序列能够完全匹配。括号匹配函数c++代码

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-07-22 13:09
    关注

    引自免费微信小程序:皆我百晓生

    这个问题可以通过回溯算法来解决,我们首先遍历所有可能的替换操作,并检查这些操作是否会导致括号匹配。这里是一个简单的实现方法。

    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    class Solution {
    public:
        bool canBeValid(string s) {
            // 遍历所有的A, B, C
            for (int i = 0; i < s.size(); ++i) {
                char c = s[i];
                if (c == 'A') { // 如果是A
                    // 确保有下一个字符并且是B
                    if (i + 1 < s.size() && s[i+1] == 'B')
                        i++; // 移动到下一个字符
                    else return false; // 如果没有B,则无法匹配
                } else if (c == 'B') { // 如果是B
                    // 确保有下一个字符并且是C
                    if (i + 1 < s.size() && s[i+1] == 'C')
                        i += 2; // 移动到下一个字符并添加一个()
                    else return false; // 如果没有C,则无法匹配
                } else if (c == 'C') { // 如果是C
                    // 确保有下一个字符并且是A
                    if (i + 1 < s.size() && s[i+1] == 'A')
                        i += 2; // 移动到下一个字符并添加一个(
                    else return false; // 如果没有A,则无法匹配
                }
            }
            return true;
        }
    };
    
    int main() {
        Solution solution;
        string test_string = "ABC";
        cout << (solution.canBeValid(test_string) ? "True" : "False") << endl;
        return 0;
    }
    

    这段代码会遍历输入的字符串,对于每一个字母,它会确保后面至少有一个匹配的字母。如果在某个位置找不到匹配的字母,则返回false,表示当前的字符串不能进行有效的括号匹配。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 7月30日
  • 已采纳回答 7月22日
  • 创建了问题 7月22日

悬赏问题

  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
  • ¥15 QQ邮箱过期怎么恢复?
  • ¥15 登录他人的vue项目显示服务器错误
  • ¥15 (标签-android|关键词-app)
  • ¥15 comsol仿真压阻传感器
  • ¥15 Python线性规划函数optimize.linprog求解为整数