码迷,mamicode.com
首页 > 其他好文 > 详细

数组与字符串 1.3

时间:2014-09-14 20:41:47      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   os   使用   ar   文件   div   

给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。

分析:一个字符串的字符重新排列能变成另一个字符串,要求两个字符串出现的字符类型和数目相同。使用一个数组记录每个字符出现的情况即可。此处假设输入字符为ASCII字符。

 1 #include <iostream>
 2 #include <fstream>
 3 #include <cstring>
 4 
 5 using namespace std;
 6 
 7 bool reachable( const char *s, const char *p );
 8 
 9 int main( int argc, char *argv[] ) {
10     string data_file = "./1.3.txt";
11     ifstream ifile( data_file.c_str(), ios::in );
12     if( !ifile.is_open() ) {
13         fprintf( stderr, "cannot open file: %s\n", data_file.c_str() );
14         return -1;
15     }
16     string s, p;
17     while( ifile >>s >>p ) {
18         cout <<s <<" " <<p <<": " << boolalpha <<reachable( s.c_str(), p.c_str() ) <<endl;
19     }
20     ifile.close();
21     return 0;
22 }
23 
24 bool reachable( const char *s, const char *p ) {
25     int table[256] = { 0 };
26     int slen = 0, plen = 0;
27     while( s[slen] != \0 ) { ++table[s[slen++]];  }
28     while( p[plen] != \0 && table[p[plen]] ) { --table[p[plen++]]; }
29     return p[plen] == \0 && slen == plen;
30 }

测试文件

aa aa
aa ab
aaa aab
abcdedfg abcdefg
aa11df334 1fd343a1a
abcdefg abcdgds

 

数组与字符串 1.3

标签:style   blog   color   io   os   使用   ar   文件   div   

原文地址:http://www.cnblogs.com/moderate-fish/p/3971460.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!