• 九度机试 题目1165:字符串匹配 2008年北京航空航天大学计算机研究生机试真题


    题目1165:字符串匹配

    时间限制:1 秒

    内存限制:32 兆

    特殊判题:

    提交:2497

    解决:858

    题目描写叙述:

        读入数据string[ ]。然后读入一个短字符串。要求查找string[ ]中和短字符串的全部匹配。输出行号、匹配字符串。匹配时不区分大写和小写,而且能够有一个用中括号表示的模式匹配。

    如“aa[123]bb”。就是说aa1bb、aa2bb、aa3bb都算匹配。

    输入:

    输入有多组数据。
    每组数据第一行输入n(1<=n<=1000)。从第二行開始输入n个字符串(不含空格)。接下来输入一个匹配字符串。

    输出:

    输出匹配到的字符串的行号和该字符串(匹配时不区分大写和小写)。

    例子输入:
    4
    Aab
    a2B
    ab
    ABB
    a[a2b]b
    例子输出:
    1 Aab
    2 a2B
    4 ABB
    来源:
    2008年北京航空航天大学计算机研究生机试真题

    #include <iostream>
    #include 
    #include 
    #include 
    #include 
    #include 
    using namespace std;
    int main()
    {
        int n=0;
        while(cin>>n){
            string *s=new string[n+1];
            string *tmp=new string[n+1];
            for(int i=0;i<=n;i++){
                cin>>s[i];
                tmp[i]=s[i].substr(0,s[i].length());
            }
            for(int i=0;i<=n;i++){
                for(int j=0;j<s[i].length();j++){
                    if(s[i][j]!='['&&s[i][j]!=']')
                        s[i][j]=tolower(s[i][j]);
                }
            }
            int pos=0;
            int start=s[n].find('[');
            int end=s[n].find(']');
            string head=s[n].substr(0,start);
            string tail=s[n].substr(end+1,s[n].length()-end);
            string *result=new string[end-start-1];
            for(int i=start+1;i<end;i++){
                result[pos]=head+s[n][i]+tail;
                for(int j=0;j<n;j++){
                    if(result[pos].compare(s[j])==0){
                        cout<<j+1<<" "<<tmp[j]<<endl;
                        break;
                    }
                }
                pos++;
            }
        }
        return 0;
    }
     
    /**************************************************************
        Problem: 1165
        User: 爱理momoko
        Language: C++
        Result: Accepted
        Time:0 ms
        Memory:1520 kb
    ****************************************************************/
    

  • 相关阅读:
    Android之旅 自我图示总结四大组件
    解决.NET 调用JAVA WEBService服务中文乱码问题
    【itercast OSI 七层网络模型 学习笔记】Layer 1 物理层
    用SDL库播放yuy2 Packed mode
    uva539 卡坦岛 简单回溯!
    Zookeeper CLI
    在安装ZooKeeper之前,请确保你的系统是在以下任一操作系统上运行
    Zookeeper leader选举
    Zookeeper 工作流
    ZooKeeper的架构
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5096889.html
Copyright © 2020-2023  润新知