`
junfeng_feng
  • 浏览: 19747 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

字符串同素

 
阅读更多
//字符串同素:包含相同的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;
}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics