[C++] 行程编码C++代码
#include<iostream>
#include<string.h>
#include<string>
#include<cstring>
#include<sstream>
using namespace std;
/*
问题检查函数
参数:输入的字符串
返回:BOOL
真表示为编码问题
假表示为解码问题
*/
bool check(string str){
bool ok=true;
for(int i=str.length()-;i>=;i--){
if(str[i]>='' && str[i]<=''){
ok=false;
break;
}
}//遍历看字符串中是否含有数字
return ok;
}
/*
编码函数
参数:待编码字符串
返回:无
*/
void bian(string str){
str+='';//给待编码的字符串加一个结束位’0‘
string new_str="";//编码后的字符串
int slen=str.length();
char pre=str[];//标记当前计算重复的字符
int renum=;//当前重复的个数
for(int i=;i<slen;i++){
if(str[i]==pre){//如果重复就继续累加
renum++;
}else{//否则将累加度和自符存入新的字符串中并更新字符和重复度
char *temp=new char;
sprintf(temp,"%d",renum);
new_str+=temp;
new_str+=pre;
renum=;
pre=str[i];
}
}
str=str.substr(,slen-);
cout<<"**********************************************\n";
cout<<"* 你想的是把原来的数据编码,对吧?结果如下:\n";
cout<<"* "<<str<<" ---> "<<new_str<<'\n';
cout<<"* 转换前长度为: "<<str.length()<<'\n';
cout<<"* 转换后长度为: "<<new_str.length()<<'\n';
cout<<"* 转换率为 : "<<new_str.length()/(str.length()*1.0)<<"\n";
cout<<"**********************************************\n\n";
}
/*
解码函数
参数:待解码字符串
输出:无
*/
void jie(string str){
istringstream in(str);//使用流操作
int num;char s;
string new_str="";
while(in>>num>>s){
while(num--)new_str+=s;
}
cout<<"**********************************************\n";
cout<<"* 你想的是把原来的数据解码,对吧?结果如下:\n";
cout<<"* "<<str<<" ---> "<<new_str<<'\n';
cout<<"* 解码前长度为: "<<str.length()<<'\n';
cout<<"* 解码后长度为: "<<new_str.length()<<'\n';
cout<<"* 解码率为 : "<<new_str.length()/(str.length()*1.0)<<"\n";
cout<<"**********************************************\n\n";
}
int main(){
string str;
while(getline(cin,str)){
if(check(str)){
bian(str);
}else{
jie(str);
}
}return ;
}
[C++] 行程编码C++代码的更多相关文章
- [Beautifulzzzz的博客目录] 快速索引点这儿O(∩_∩)O~~,红色标记的是不错的(⊙o⊙)哦~
3D相关开发 [direct-X] 1.direct-X最小框架 [OpenGL] 1.环境搭建及最小系统 [OpenGL] 2.企业版VC6.0自带的Win32-OpenGL工程浅析 51单片机 [ ...
- 日期格式代码出现两次的错误 ORA-01810
错误的原因是使用了两次MM . 一.Oracle中使用to_date()时格式化日期需要注意格式码 如:select to_date('2005-01-01 11:11:21','yyyy-MM-dd ...
- 可爱的豆子——使用Beans思想让Python代码更易维护
title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...
- iOS代码规范(OC和Swift)
下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...
- Jquery的点击事件,三句代码完成全选事件
先来看一下Js和Jquery的点击事件 举两个简单的例子 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...
- redux-amrc:用更少的代码发起异步 action
很多人说 Redux 代码多,开发效率低.其实 Redux 是可以灵活使用以及拓展的,经过充分定制的 Redux 其实写不了几行代码.今天先介绍一个很好用的 Redux 拓展-- redux-amrc ...
- 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)
建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...
- 使用 .NET WinForm 开发所见即所得的 IDE 开发环境,实现不写代码直接生成应用程序
直接切入正题,这是我09年到11年左右业余时间编写的项目,最初的想法很简单,做一个能拖拖拽拽就直接生成应用程序的工具,不用写代码,把能想到的业务操作全部封装起来,通过配置的方式把这些业务操作组织起来运 ...
- jsp前端实现分页代码
前端需要订一page类包装,其参数为 private Integer pageSize=10; //每页记录条数=10 private Integer totalCount; //总记录条数 priv ...
随机推荐
- 2016.02.02 JS事件
今天看完JS事件部分,所剩时间不多,务必分秒珍惜.
- 判断Ie浏览器
ie8以下 if(!+[1,]) if(window.attachEvent){ alert("ie")}else if(window.addEventListener){aler ...
- 修改Tomcat根目录
在server.xml文件中找到</Host>标签,在之前加入这样一行:<Context path="" docBase="F:/MyWeb" ...
- An unknown error occurred & “”的 iPhone is busy: Processing symbol files
An unknown error occurred & ""的 iPhone is busy: Processing symbol files An unknown err ...
- 03-JAVA方法
答:我发现这两个方法的返回类型以及参数类型不一样. package 汉诺塔问题; /**汉诺塔问题*作者:徐浩军 日期:16.10.16 天气:晴*/ public class TowersOfHan ...
- JVM调优-关于jvm的一些基本概念
1.数据类型 java体系中,数据类型可分为2类:基本类型和引用类型.基本类型保存变量原始值,即:他代表的值就是数值本身: 而引用类型的变量保存引用值."引用值"代表某个对象的引用 ...
- 問題排查:在 ServiceModel 客戶端配置部份中,找不到名稱 和協定 的終結點元素。
同樣都是刪掉服務參考再重建重編譯重發行,為什麼之前幾次都沒事? 這次只不過是刪掉服務參考,然後換了個名稱重建而已,做完就變這樣? 後來發現問題出在 app.config,因為之前 app.config ...
- js资源
http://www.oschina.net/p/ace-editor https://git.oschina.net/pandao/editor.md/blob/master/editormd.js ...
- eclipse 的操作
1.windows->Preferences...打开"首选项"对话框,左侧导航树,导航到general->Workspace,右 侧Text file encodin ...
- c# 程序检测日志输出的类
public class LogWrite { public LogWrite() { // // TODO: ...