字符串同素

来源:互联网 发布:淘宝网信鸽保健砂 编辑:程序博客网 时间:2024/06/10 05:05
//字符串同素:包含相同的char,以及char出现的次数#include <iostream>#include <stdio.h>#include <map>#include <assert.h>#include <string.h>#include "boost/smart_ptr.hpp"using namespace std;const int CHAR_NUMBER = 256;//答题的时候,好像写成255了bool get(char* str,int* arr){    if( str == NULL || arr == NULL )    {        return false;    }        memset(arr, 0, sizeof(int) * CHAR_NUMBER);    for( int i = 0; i < strlen(str) ; i++ )    {        arr[static_cast<unsigned char>(str[i])] ++;    }    return true;}bool is_common(char* str1, char* str2){    assert(str1 != NULL);    assert(str2 != NULL);    int arr1[CHAR_NUMBER];    int arr2[CHAR_NUMBER];    //考试其实有多余的时间,但是当时没有思考,没有检查    //没有考虑优化,及两个字符串的长度不等时,直接返回false    if( strlen(str1) != strlen(str2) )    {        return false;    }    get(str1, arr1);    get(str2, arr2);    for( int i = 0 ; i < CHAR_NUMBER ; i++ )    {        if( arr1[i] != arr2[i] )        {            return false;        }    }    return true;}void fourth(){    char* str1 = "fjf";    char* str2 = "ffj";    cout<<is_common(str1, str2)<<endl;}int main(){    //first();    //second();    //third();    fourth();    //five();    return 0;}


原创粉丝点击