就是给几个字母所对应的数字,然后将数字输出,但是前后两个数字一样的情况只输出一次。
/*************************************************************************
> File Name: 10260.cpp
> Author: Toy
> Mail: ycsgldy@163.com
> Created Time: 2013年05月28日 星期二 14时48分43秒
************************************************************************/
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <cstring>
#include <cstdlib>
#include <climits>
#include <sstream>
#include <fstream>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <cmath>
#include <stack>
#include <map>
#include <set>
using namespace std;
const int INF = 0x7fffffff;
char str[25];
int solve ( char s ) {
if ( s == 'B' || s == 'F' || s == 'P' || s == 'V' ) return 1;
else if ( s == 'C' || s == 'G' || s == 'J' || s == 'K' || s == 'Q' || s == 'S' || s == 'X' || s == 'Z' ) return 2;
else if ( s == 'D' || s == 'T' ) return 3;
else if ( s == 'L' ) return 4;
else if ( s == 'M' || s == 'N' ) return 5;
else if ( s == 'R' ) return 6;
else return 0;
}
int cnt, tmp;
int main ( ) {
while ( scanf ( "%s", str ) == 1 ) {
tmp = -1;
int len = strlen ( str );
for ( int i = 0; i < len; ++i ) {
cnt = solve ( str[i] );
if ( tmp != cnt && cnt != 0 ) printf ( "%d", cnt );
tmp = cnt;
}
printf ( "\n" );
}
return 0;
}