zoukankan      html  css  js  c++  java
  • 结题报告

    题目:点此

    描述:

    在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$"标注,不能匹配的右括号用"?"标注.

    思路:

    定义一个数组存要输出的字符($,?, (空格))

    按常规的括号匹配问题去做(遇到左括号入栈,遇到右括号出栈),只是遇到右括号不匹配时数组对应位置赋为?,左括号不匹配时对应位置赋为$,匹配的对应位置赋为空格。最后输出原字符串后输出此字符数组即可。

    犯的错误:

    EOF(-1)仅限用于scanf字符数组,不能用于字符串,否则

    收获:

    EOF(-1)不能用于字符串,读入字符串可以这样:

    while(getline(cin,c))//string c

    代码:

     1 #include <stack>
     2 #include <iostream>
     3 using namespace std;
     4 char a[101];
     5 stack <int> b;
     6 string c;
     7 int main(){
     8     while(getline(cin,c)){
     9         for(int i=0;i<c.length();i++){
    10             a[i]=' ';
    11             if(c[i]=='('){
    12                 b.push(i);
    13             }
    14             if(c[i]==')'){
    15                 if(b.empty()){
    16                     a[i]='?';
    17                 }
    18                 else{
    19                     b.pop();
    20                 }
    21             }
    22         }
    23         while(!b.empty()){
    24             int i=b.top();
    25             b.pop();
    26             a[i]='$';
    27         }
    28         a[c.length()]='';
    29         cout << c << "
    " << a << "
    ";
    30     }
    31     return 0;
    32 }
    View Code
  • 相关阅读:
    C#_委托
    一个asp+ACCESS省市二级联动菜单程序
    asp怎么实现二级联动下拉菜单
    ASP用户登录代码
    Windows 2003 IIS 不支持ASP的问题
    iptables
    VNC ( Virtual Network Computing )
    MongoDB的备份(mongodump)与恢复(mongorestore)
    Locally managed (LMT) vs. Dictionary managed (DMT) tablespace
    向现有的磁盘组加入/删除ASM磁盘
  • 原文地址:https://www.cnblogs.com/eason66-blog/p/P2705.html
Copyright © 2011-2022 走看看