• 征战蓝桥 —— 2013年第四届 —— C/C++A组第5题——前缀判断


    题目标题:前缀判断

    如下的代码判断 needle_start指向的串是否为haystack_start指向的串的前缀,如不是,则返回NULL。

    比如:“abcd1234” 就包含了 “abc” 为前缀

     char* prefix(char* haystack_start, char* needle_start)
     {
     char* haystack = haystack_start;
     char* needle = needle_start;
     
     
     while(*haystack && *needle){
     if(______________________________) return NULL;  //填空位置
     }
     
     if(*needle) return NULL;
     
     return haystack_start;
     }
    

    请分析代码逻辑,并推测划线处的代码,通过网页提交。
    注意:仅把缺少的代码作为答案,千万不要填写多余的代码、符号或说明文字!!

    代码

    #include <iostream>
    
    using namespace std;
    
    /**
     *
     * @param haystack_start 母串
     * @param needle_start 前缀
     * @return
     */
    char *prefix(char *haystack_start, char *needle_start) {
        char *haystack = haystack_start;
        char *needle = needle_start;//前缀
    
    
        while (*haystack && *needle) {//两个指针都没有越界
    //        if(______________________________) return NULL;  //填空位置
    //移动指针
    //并判断
            if (*(haystack++) != *(needle++))return NULL;
        }
    
        if (*needle) return NULL;
    
        return haystack_start;
    }
    
    int main(int argc, const char *argv[]) {
        cout << prefix("abcd123", "abd") << endl;
        return 0;
    }
    
  • 相关阅读:
    [HAOI2008]硬币购物
    [NOI2006]网络收费
    [HNOI2014]米特运输
    Codeforces Round #536 (Div. 2)
    [洛谷P3931]SAC E#1
    [洛谷P1402]酒店之王
    [洛谷P4174][NOI2006]最大获利
    [CF1082G]Petya and Graph
    [CF1095F]Make It Connected
    [CF1083B]The Fair Nut and Strings
  • 原文地址:https://www.cnblogs.com/AlexKing007/p/12338981.html
Copyright © 2020-2023  润新知