(STL中自带的排序功能7.3.3)POJ 1318 Word Amalgamation(求解一个单词是否在字典里面。解法:将单词按字典序处理后的结果与字典中的单词安字典序处理后的结果进行比较)

/*
 * POJ_1318.cpp
 *
 *  Created on: 2013年11月1日
 *      Author: Administrator
 */

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>

using namespace std;

const int maxn = 110;

int main(){
	string a[maxn],b[maxn],c;

	int n,i;
	while(cin >> a[i]){//要使用cin >> a[i],这是需要#include <string>
		if(a[i][0] == 'X'){
			break;
		}

		i++;
	}


	sort(a,a+i);//数组的排序用这种方式
	n = i;
	for(i = 0 ; i < n ; ++i){
		b[i] = a[i];//b[i]保存第i个字符串的原序,a[i]保存字符串安字典序处理后的结果

		sort(a[i].begin(),a[i].end());//字符串的排序用这种方式
	}

	while(cin >> c){
		if(c[0] == 'X'){
			break;
		}

		bool flag = false;

		sort(c.begin(),c.end());
		for(i = 0 ; i < n ; ++i){
			if(c == a[i]){//将字符串c按字典序处理后的结果与a[i]比较
				flag = true;
				cout<<b[i]<<endl;
			}
		}

		if(!flag){
			printf("NOT A VALID WORD\n");
		}
		printf("******\n");
	}

	return 0;
}



你可能感兴趣的:((STL中自带的排序功能7.3.3)POJ 1318 Word Amalgamation(求解一个单词是否在字典里面。解法:将单词按字典序处理后的结果与字典中的单词安字典序处理后的结果进行比较))