博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
统计一个01字符串中0,1连续出现的最大次数
阅读量:5797 次
发布时间:2019-06-18

本文共 1584 字,大约阅读时间需要 5 分钟。

比如:0011000111

则表示0最大出现3次,1最大出现3次。

程序的思路很巧妙,不复杂。

// demo.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include 
using namespace std;static void strwe(char *str){ int len=0; while(*str++) len++; //while循环结束以后 得到的就是字符串的实际长度 str-=2; //while循环结束以后 str实际指向str字符串的结束符飞‘\0’的下一个字符}static void delete_char(char *str,char c) //删除字符串中指定的字符{ if (str==NULL) { return ; } char *p=str; while(*p++) { if (*p!=c) { *str++=*p; } } *str='\0';}static void caculate01(const char *str,int &max0,int &max1){ int temp0=0; int temp1=0; if (!str) { return ; } while(*str) { if (*str=='0') { max0+=1; if (*(str+1)=='1') { if (max0>temp0) { temp0=max0; } max0=0; } } else if (*str=='1') { max1+=1; if (*(str+1)=='0') { if (max1>temp1) { temp1=max1; } max1=0; } } str++; } max0=(max0>temp0)?max0:temp0; max1=(max1>temp1)?max1:temp1; //这里这样写的目的是防止01010001111样式的字符串 所带来的bug //如果你不按照上两行这样写 你测试01010001111会得到 3 1 而不是 3 4}int main(){ char str[]="01010001111"; int max0=0; int max1=0; caculate01(str,max0,max1); cout<<"0连续出现的次数最多为:"<
<

测试0101000000111111101003

转载于:https://www.cnblogs.com/audi-car/p/4773354.html

你可能感兴趣的文章
java中ArrayList 、LinkList区别
查看>>
Spring ’14 Wave Update: Installing Dynamics CRM on Tablets for Windows 8.1
查看>>
利用rand7()构造rand10()
查看>>
MySQL 备份与恢复
查看>>
吃午饭前,按书上的代码写会儿--Hunt the Wumpus第一个版本
查看>>
easyui中combobox的值改变onchang事件
查看>>
TEST
查看>>
PAT A1037
查看>>
ReactiveSwift源码解析(三) Signal代码的基本实现
查看>>
(六)Oracle学习笔记—— 约束
查看>>
[Oracle]如何在Oracle中设置Event
查看>>
top.location.href和localtion.href有什么不同
查看>>
02-创建hibernate工程
查看>>
information_schema系列五(表,触发器,视图,存储过程和函数)
查看>>
瓜子二手车的谎言!
查看>>
[转]使用Git Submodule管理子模块
查看>>
DICOM简介
查看>>
Scrum之 Sprint计划会议
查看>>
List<T> to DataTable
查看>>
[Java]Socket和ServerSocket学习笔记
查看>>