Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

水题,提供我的这个还算短的代码(PS:原来打算用模版查找的,后来忘记了,边看电视边写代码就是不好~~)

Posted by uljfwffj1 at 2010-07-28 17:14:28 on Problem 1051
#include<iostream>
#include<map>
#include<string>
#include<cstring>
using namespace std;
#include<ctype.h>
char m[30][5] = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",\
		".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--..","..--",".-.-","---.","----"};
int main()
{
	int n , length , num[120] , k , t , j , l , f;
	cin >> n;
	char temp[120] , u[1000];
	for(t = 1 ; t <= n; t++)
	{
		u[0] = '\0';
		cin >> temp;
		length = strlen(temp);
		for(k = 0; k < length ; k++)
		{
			if(isalpha(temp[k]))
				strcat(u , m[temp[k] - 'A']) , num[k] = strlen(m[temp[k] - 'A']);
			else if(temp[k] == '_')
				strcat(u , m[26]) , num[k] = 4;
			else if(temp[k] == ',')
				strcat(u , m[27]) , num[k] = 4;
			else if(temp[k] == '.')
				strcat(u , m[28]) , num[k] = 4;
			else if(temp[k] == '?')
				strcat(u , m[29]) , num[k] = 4;
		}
		cout << t << ": ";
		for(k-- , j = 0; k!= -1 ; k--)
		{
			for(l = 0 , temp[0] = '\0'; l < num[k] ; l++ , j++)
				temp[l] = u[j];
			temp[l] = '\0';
			for(l = 0 , f = 1; f && l < 26; l++)
			{
				if(!strcmp(m[l] , temp))
				{
					putchar('A'  +l);
					f = 0;
				}
			}
			if(f && !strcmp(m[26] , temp))
				putchar('_') , f = 0;
			if(f && !strcmp(m[27] , temp))
				putchar(',') , f = 0;
			if(f && !strcmp(m[28] , temp))
				putchar('.') , f = 0;
			if(f && !strcmp(m[29] , temp))
				putchar('?') , f = 0;
		}
		putchar('\n');
	}
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator