华为 oj 表示数字(代码有参考)理解算法设计
来源:互联网 发布:淘宝怎么换货 编辑:程序博客网 时间:2024/06/13 02:30
虽然是初级题目,但是 也不是太容易就做出来的
还是用c++ 好些 因为c++ string 是可以存储到缓冲区的,
字符串长度可以变化
参考了某神的代码 和我的思路一样 ,就拿来主义了,挺经典的一道面试题 ,变形会有不少,代码写的不错
i= k+2 //这一句是传神之笔,,防止回溯 !!
思路 :字符串是动态增长的,先是判断非数字连续长度 ,一旦不满足条件 ,就是说 有数字出现
在当前位置之后插入 * ,字符串长度++,位置直接跳到 +2 ,从此处开始 肯定就是数字串,循环判断
数字串长度,,判断完数字,末尾+‘*’,外循环的i从 当前变长字符串的当前字符位置+2 开始 进行下次判断
算法:
每次循环做两件事操作 :
寻找非数字串
找完 +‘*’
长度++
位置+2
寻找数字串
找完 +‘*’
长度++
位置+2
位置 付给 i 便利完剩下子串变长字符串的处理
#include <iostream>#include <string>using namespace std;int main(){string str;cin>>str;int length=str.size();for(int i=0;i<length;){int k=i;while (!isdigit(str[k]))k++;str.insert(k,"*");length++;k=k+2;while (isdigit(str[k]))k++;str.insert(k,"*");length++;i=k+2; }cout<<str<<endl;}
0 0
- 华为 oj 表示数字(代码有参考)理解算法设计
- 华为OJ(表示数字)
- 【华为OJ】表示数字
- 华为oj 表示数字
- 【华为 OJ 】表示数字
- 【华为OJ】表示数字
- 华为OJ-表示数字
- 【华为OJ】【062-表示数字】
- 华为OJ 初级:表示数字
- 华为oj初级 表示数字
- 华为OJ基础题-表示数字
- 华为OJ系列之---表示数字
- 华为OJ——表示数字
- 华为(3)表示数字
- OJ-----表示数字
- 华为OJ:数字颠倒
- 【华为OJ】颠倒数字
- 华为 OJ 数字颠倒
- javascript下的数组及其操作时间
- 2015实习面试腾讯产品经历
- App开发日报 2015-04-19
- Linux下find命令详解
- Python循环遍历文件
- 华为 oj 表示数字(代码有参考)理解算法设计
- 二分查找
- Jenkins+ant+tomcat7.0远程部署war包-tomcat-user配置
- “系统模型” 概念
- iOS开发系列之常用自定义控件开发集—自定义单选按钮或者多选按钮控件开发
- \r和\n的区别
- System V 信号量(chapter 11)
- shell if语句
- LeetCode 9 Palindrome Number 回文数字