博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 443. String Compression
阅读量:7056 次
发布时间:2019-06-28

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

下面反向遍历,还是正向好。

void left(vector
& v, bool p(int)) { int max_index = v.size() - 1; int del = -1; int rel = -1; while (del < max_index) { while (p(v[del]) && del < max_index) del++; if (del >= max_index) break; if (rel < del) rel = del; while (!p(v[rel]) && rel <= max_index) rel++; if (rel > max_index) break; swap(v[del], v[rel]); del++; } } int compress(vector
& chars) { int size = chars.size(); int point = size - 1; int count = 1; for (int i = point; i >= 0; i--) { if (chars[i] == chars[i - 1] && i > 0) count++; else if (count > 1) { for (int j = count - 1; j > 0; j--) chars[i + j] = 2; string temp = to_string(count); for (int j = 0; j < temp.size(); j++) chars[i + j + 1] = temp[j]; count = 1; } } left(chars, [](int v) {
return v != 2;}); return count_if(chars.begin(), chars.end(), [](int v) {
return v != 2;}); }

 

其他答案:

int compress(vector
& chars) { int lo=0; int cnt=0; for(int i=0; i
1){ string nums=to_string(cnt); for(int i=0; i

 

转载于:https://www.cnblogs.com/willaty/p/8533409.html

你可能感兴趣的文章
实验三 有限自动机的构造与识别
查看>>
python的学习笔记之——time模块常用内置函数
查看>>
计算机是如何工作的
查看>>
【c++】必须在类初始化列表中初始化的几种情况
查看>>
阿拉伯数字1与英语字母l造成的代码bug
查看>>
深度学习常见的专业术语
查看>>
2018-2019-2 20165334《网络对抗技术》Exp2 后门原理与实践
查看>>
HTML提交方式post和get区别(实验)
查看>>
Java 11.do语句
查看>>
学习理论之感知器与最大间隔分类器
查看>>
Be Nice!要善良
查看>>
二、ansible配置简要介绍
查看>>
解决docker容器中无ifconfig命令和ping命令问题
查看>>
CHAR、TCHAR、WCHAR_T之间的区别与问题
查看>>
sql小计合计
查看>>
安装Java
查看>>
Ubuntu Linux输入法fcitx方块乱码解决设置
查看>>
node递归批量重命名指定文件夹下的文件
查看>>
python if not用法
查看>>
python-2
查看>>