1002.txt
上传用户:fdtanqha
上传日期:2022-04-05
资源大小:1k
文件大小:3k
源码类别:

IP电话/视频会议

开发平台:

Visual C++

  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4. #include <map>
  5. using namespace std ;
  6. map< char , char > ch_ch ;
  7. void Initial( )
  8. {
  9.  ch_ch.insert( make_pair( 'A' , '2' ) ) ;
  10.  ch_ch.insert( make_pair( 'B' , '2' ) ) ;
  11.  ch_ch.insert( make_pair( 'C' , '2' ) ) ;
  12.  ch_ch.insert( make_pair( 'D' , '3' ) ) ;
  13.  ch_ch.insert( make_pair( 'E' , '3' ) ) ;
  14.  ch_ch.insert( make_pair( 'F' , '3' ) ) ;
  15.  ch_ch.insert( make_pair( 'G' , '4' ) ) ;
  16.  ch_ch.insert( make_pair( 'H' , '4' ) ) ;
  17.  ch_ch.insert( make_pair( 'I' , '4' ) ) ;
  18.  ch_ch.insert( make_pair( 'J' , '5' ) ) ;
  19.  ch_ch.insert( make_pair( 'K' , '5' ) ) ;
  20.  ch_ch.insert( make_pair( 'L' , '5' ) ) ;
  21.  ch_ch.insert( make_pair( 'M' , '6' ) ) ;
  22.  ch_ch.insert( make_pair( 'N' , '6' ) ) ;
  23.  ch_ch.insert( make_pair( 'O' , '6' ) ) ;
  24.  ch_ch.insert( make_pair( 'P' , '7' ) ) ;
  25.  ch_ch.insert( make_pair( 'R' , '7' ) ) ;
  26.  ch_ch.insert( make_pair( 'S' , '7' ) ) ;
  27.  ch_ch.insert( make_pair( 'T' , '8' ) ) ;
  28.  ch_ch.insert( make_pair( 'U' , '8' ) ) ;
  29.  ch_ch.insert( make_pair( 'V' , '8' ) ) ;
  30.  ch_ch.insert( make_pair( 'W' , '9' ) ) ;
  31.  ch_ch.insert( make_pair( 'X' , '9' ) ) ;
  32.  ch_ch.insert( make_pair( 'Y' , '9' ) ) ;
  33. }
  34. void toStandard ( vector<string> & telNum )
  35. {
  36.  vector<string>::iterator iter = telNum.begin() ;
  37.  int i ;
  38.  while( iter != telNum.end() )
  39.  {
  40.   for( i = 0 ; i < (*iter).size() ; ++ i )
  41.   {
  42.    char letter = (*iter)[i] ;
  43.    if( letter == '-' )
  44.    {
  45.     (*iter).erase( (*iter).begin() + i ) ;
  46.      -- i ;
  47.    }
  48.    else
  49.    if( ch_ch.find( letter ) != ch_ch.end() )
  50.     (*iter)[i] = ch_ch[ letter ] ;
  51.   }
  52.   (*iter).insert( (*iter).begin() + 3 , '-' ) ;
  53.   ++ iter ; 
  54.  }
  55.  return ;
  56. }
  57. void setMap( vector<string> & telNum , map< string , int > & telNum_count )
  58. {
  59.  vector<string>::iterator iter = telNum.begin() ;
  60.  while( iter != telNum.end() )
  61.  {
  62.   ++ telNum_count[ *iter ] ;
  63.   ++ iter ;
  64.  }
  65.  return ;
  66. }
  67. int main()
  68. {
  69.  int case_num ;
  70.  Initial( ) ;
  71.  while( cin >> case_num )
  72.  {
  73.   vector<string> telNum ;
  74.   string number ;
  75.   int i ;
  76.   for( i = 0 ; i < case_num ; ++ i )
  77.   {
  78.    cin >> number ;
  79.    telNum.push_back( number ) ;
  80.   }
  81.   toStandard( telNum ) ;
  82.   map< string , int > telNum_count ;
  83.   setMap( telNum , telNum_count ) ;
  84.   map< string , int > ::iterator iter = telNum_count.begin() ;
  85.   bool happen = false ;
  86.   while( iter != telNum_count.end() )
  87.   {
  88.    if( iter->second > 1 )
  89.    {
  90.     cout << iter->first << " "
  91.      << iter->second << endl ;
  92.     happen = true ;
  93.    }
  94.    ++ iter ;
  95.   }
  96.   if( happen == false )
  97.    cout << "No duplicates." << endl ;
  98.  }
  99.  return 0 ;
  100. }