字符串同素
来源:互联网 发布:淘宝网信鸽保健砂 编辑:程序博客网 时间: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;}