1548.cpp

来自「这是哈尔滨工业大学acmOJ的源代码」· C++ 代码 · 共 72 行

CPP
72
字号
/*  This Code is Submitted by wywcgs for Problem 1548 on 2005-10-06 at 15:17:18 */ 
#include <stdio.h>
#include <string.h>
#define  MAX  128

const char pw[] = "the quick brown fox jumps over the lazy dog";
const int pwlen = strlen(pw);

int main()
{
	char cr[MAX][MAX], changed[26];
	int n, clen[MAX];
	int i, j, t = 0;
	bool decr;
	
	while(gets(cr[0]) != NULL) {
		clen[0] = strlen(cr[0]);
		for(n = 1; ; n++) {
			gets(cr[n]);
			clen[n] = strlen(cr[n]);
			if(clen[n] == 0) {
				break;
			}
		}
		decr = false;
		for(i = 0; i < n; i++) {
			memset(changed, -1, sizeof(changed));
			if(clen[i] == pwlen) {
				decr = true;
				for(j = 0; j < pwlen; j++) {
					if(cr[i][j] == ' ') {
						if(pw[j] != ' ') {
							decr = false;
							break;
						}
					} else {
						if(changed[cr[i][j]-'a'] == -1) {
							changed[cr[i][j]-'a'] = pw[j];
						} else if(changed[cr[i][j]-'a'] != pw[j]) {
							decr = false;
							break;
						}
					}
				}
				if(decr) {
					break;
				}
			}
		}
		if(t != 0) {
			putchar('\n');
		}
		t++;
		if(!decr) {
			printf("No solution.\n");
		} else {
			for(i = 0; i < n; i++) {
				for(j = 0; j < clen[i]; j++) {
					if(cr[i][j] == ' ') {
						putchar(' ');
					} else {
						putchar(changed[cr[i][j]-'a']);
					}
				}
				putchar('\n');
			}
		}
	}
	
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?