亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

通過“回文字算法”復習C++語言

2020-01-26 14:25:19
字體:
來源:轉載
供稿:網友

 一、什么是回文字

給定一個字符串,從前往后讀和從后往前讀,字符串序列不變。例如,河北省農村信用社的客服電話是“96369”,無論從后往前讀,還是從前后往后讀,各個字符出現的位置不變。

二、功能實現

(一)、給定一個字符串,判斷該字符串是否是回文字。

(二)、給定一個任意字符串,判斷是否可以轉換為回文字,如果可以轉換為回文字,給出具體的算法。

三、C++語言實現版本(JAVA語言版本后續實現)

(一)頭文件 (BackText.h)

/** BackText.h** Created on: 2016年9月30日* Author: gaodianhua*/#include <string>#include <cstring>#include <map>#ifndef BACKTEXT_H_#define BACKTEXT_H_using namespace std;class BackText {  string text;  map<char,int> mapBychar;  int checksum;  public:  BackText();  BackText(char str[]);  BackText(string text);  virtual ~BackText();  bool isBackText();  void print() const;  void countDiffCh();  void convert(char * dest);};#endif /* BACKTEXT_H_ */

(二)類的實現

/** BackText.cpp** Created on: 2016年9月30日* Author: gaodianhua*/#include "BackText.h"#include <iostream>#include <string>#include <iterator>#include <cstring>#include <cstdlib>#include <map>using namespace std;BackText::BackText() {}BackText::~BackText() {  this->checksum=0;}BackText::BackText(char *str){  this->text=str;  this->checksum=0;}BackText::BackText(string str){  this->text=str;  this->checksum=0;}bool BackText::isBackText(){  string::iterator it1,it2;  it1=text.begin();  it2=text.end()-1;  for(;it1<=it2;it1++,it2--){    if(*it1!=*it2)    return false;  }  return true;}void BackText::print() const{  cout<<this->text<<endl;}void BackText::countDiffCh(){  string::iterator it1,it2;  string temp;  temp.clear();  int index=0;  for(it1=text.begin();it1<text.end();it1++){    if( strchr(temp.data(),*it1)==NULL ){      temp.insert(index,1,*it1);      index++;    }  }  for( it2=temp.begin();it2<temp.end();it2++){    int count=0;    for(it1=text.begin();it1<text.end();it1++){      if(*it1==*it2){        count++;        checksum++;      }    }    mapBychar.insert(pair<char,int>(*it2,count));  }  map<char,int>::iterator m;  for(m=mapBychar.begin( );m != mapBychar.end( ); m++ )    cout <<m->first<<" "<<m->second<<endl;}void BackText::convert(char* dest){  if(isBackText()){    strcpy(dest,text.data());    return;  }  int cnt=0;  map<char,int>::iterator m;  for(m=mapBychar.begin( );m != mapBychar.end( ); m++ ){    if(m->second%2!=0){      cnt++;    }  }  if(cnt>1){    cout<<"該字符串不能被轉化為回文字"<<endl;    return;  }  cout<<"開始轉換..."<<endl;  int begIndex=0;  int endIndex=checksum-1;  bool oddflag=0;  char oddchar;  for(m=mapBychar.begin( );m != mapBychar.end( ); m++ ){    if( checksum % 2 == 0 ){      for( int i=0; i< m->second/2; i++ ){        dest[begIndex++]=m->first;        dest[endIndex--]=m->first;      }    }else{      if(m->second % 2 == 0){        for( int i=0; i< m->second/2 ; i++ ){          dest[begIndex++]=m->first;          dest[endIndex--]=m->first;        }      }else{        oddchar=m->first;        oddflag=true;        continue;      }    }  }  if(oddflag){    map<char,int>::iterator it;    it=mapBychar.find(oddchar);    if(it==mapBychar.end()){      cout<<"do not find "<< oddchar <<endl;      return;    }    for( int i=0; i< it->second; i++ ){      dest[begIndex++]=it->first;    }  }}

(三)main函數

/** main.cpp** Created on: 2016年9月30日* Author: gaodianhua*/#include <iostream>#include "BackText.h"#include <cstdlib>#include <string>using namespace std;int main(){  string text;  text.clear();  cout<<"請輸入字符串:";  cin>>text;  BackText bt=BackText(text);  bt.print();  if( !bt.isBackText() )  cout<<"不是回文字符串"<<endl;  bt.countDiffCh();  char dest[100];  memset(dest,0x0,sizeof(dest));  bt.convert(dest);  cout<<dest<<endl;  return 0;}

以上所述是小編給大家分享的通過“回文字算法”復習C++語言,希望對大家有所幫助!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美极品美女视频网站在线观看免费| 欧美成人黑人xx视频免费观看| 亚洲国产精品久久久久秋霞不卡| 亚洲精品网站在线播放gif| 国产国语刺激对白av不卡| 国产精品久久在线观看| 欧美与欧洲交xxxx免费观看| 色综合久久精品亚洲国产| 狠狠躁夜夜躁人人爽超碰91| 日韩小视频网址| 亚洲社区在线观看| 欧美国产一区二区三区| 精品视频偷偷看在线观看| 亚洲最大福利视频网站| 国产精品视频中文字幕91| 日韩电影中文字幕在线观看| 亚洲男人的天堂在线播放| 亚洲欧美999| 色综合久综合久久综合久鬼88| 亚洲免费视频在线观看| 欧美成人精品h版在线观看| 精品亚洲夜色av98在线观看| 欧美性少妇18aaaa视频| 隔壁老王国产在线精品| 日韩精品免费综合视频在线播放| 日本一区二三区好的精华液| 2019中文字幕在线免费观看| 欧美精品在线播放| 国产日韩欧美在线视频观看| 久久久久在线观看| 国内精品久久久久影院 日本资源| 中日韩午夜理伦电影免费| 久久视频在线播放| 精品成人在线视频| 欧美夜福利tv在线| 欧美高清视频一区二区| 久久亚洲欧美日韩精品专区| 国产91九色视频| 欧美国产视频日韩| 国产区精品在线观看| 国产精品久久久久久久电影| 亚洲自拍中文字幕| 国产精品福利小视频| 日韩av综合网| 欧美日韩国产成人在线| 久久成人人人人精品欧| 色老头一区二区三区在线观看| 亚洲伊人一本大道中文字幕| 国产亚洲一级高清| 亚洲精品国产免费| 国产国产精品人在线视| xvideos亚洲| 日本高清视频精品| 亚洲第一精品自拍| 亚洲欧美日韩精品| 91精品视频一区| 国产精品日韩在线观看| 欧美日韩国产成人| 欧美午夜影院在线视频| 欧美色道久久88综合亚洲精品| 日韩精品亚洲元码| 亚洲xxxx在线| 久久av在线播放| 丝袜美腿精品国产二区| 国产丝袜一区视频在线观看| 欧美寡妇偷汉性猛交| 久久免费精品日本久久中文字幕| 日韩av观看网址| 伊人男人综合视频网| 亚洲日本成人网| 日韩国产高清污视频在线观看| 日韩在线观看视频免费| 亚洲精品动漫久久久久| 欧洲亚洲免费视频| 最近2019好看的中文字幕免费| 成人免费网站在线看| 欧美日韩中文字幕在线视频| 国产精品网站视频| 亚洲精品资源在线| 国产精品国产亚洲伊人久久| 日韩中文字幕精品| 正在播放亚洲1区| 91成人福利在线| xvideos亚洲| 欧美日韩亚洲91| 欧美又大粗又爽又黄大片视频| 亚洲成avwww人| 亚洲白拍色综合图区| 亚洲理论在线a中文字幕| 川上优av一区二区线观看| 国产精品18久久久久久麻辣| 亚洲欧美激情在线视频| 精品美女国产在线| 亚洲欧美国产制服动漫| 国产精品视频xxx| 欧美在线日韩在线| 欧美日韩不卡合集视频| 一区二区三区精品99久久| 热99久久精品| 国产精品视频99| 欧美激情视频一区二区三区不卡| 51精品国产黑色丝袜高跟鞋| 亚洲香蕉伊综合在人在线视看| 日韩免费在线免费观看| 亚洲xxxxx性| 亚洲jizzjizz日本少妇| 国产精品丝袜白浆摸在线| 亚洲va欧美va国产综合剧情| 久久精品色欧美aⅴ一区二区| 久久久久久久电影一区| 日韩女在线观看| 久久久精品国产亚洲| 久久精品国产亚洲精品| 欧美xxxwww| 亚洲aa中文字幕| 日韩精品中文字幕在线播放| 在线精品91av| 久久中国妇女中文字幕| 欧美剧在线观看| 久久久免费高清电视剧观看| 日韩在线视频二区| 欧美日韩福利视频| 久久久精品中文字幕| 久久伊人精品一区二区三区| 国产精品欧美激情在线播放| 亚洲电影天堂av| 亚洲色图狂野欧美| 国产a∨精品一区二区三区不卡| 久久久av一区| 日韩美女中文字幕| 欧美黑人视频一区| 91精品国产综合久久男男| 国产精品日韩在线一区| 久久精品视频网站| 久久久www成人免费精品张筱雨| 草民午夜欧美限制a级福利片| 国产91对白在线播放| 日韩欧美视频一区二区三区| 日本三级韩国三级久久| 国产精品扒开腿做爽爽爽视频| 538国产精品视频一区二区| 国产免费一区二区三区香蕉精| 岛国av午夜精品| 欧美一级片一区| 欧美激情图片区| 欧美性一区二区三区| 精品国内自产拍在线观看| 久久久久久久久久久人体| 欧美精品18videos性欧| 欧美高清电影在线看| 亚洲最新在线视频| 久久亚洲影音av资源网| 亚洲女人天堂av| 亚洲欧美日韩天堂一区二区| 欧洲成人午夜免费大片| www.亚洲一区| 国产精品观看在线亚洲人成网| 国产精品欧美日韩一区二区| 久久久久久九九九| 国产精品白嫩美女在线观看| 欧美极品在线播放| 欧美日韩久久久久| 久久精品国产69国产精品亚洲| 久久久久久久一|