首页 > 试题广场 >

压缩字符串(一)

[编程题]压缩字符串(一)
  • 热度指数:9187 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2bc5a3。
1.如果只有一个字符,1不用写
2.字符串中只包含大小写英文字母(a至z)。

数据范围:
0<=字符串长度<=50000

要求:时间复杂度O(N)
示例1

输入

"aabcccccaaa"

输出

"a2bc5a3"
示例2

输入

"shopeew"

输出

"shope2w"
头像 fred-coder
发表于 2021-11-19 23:32:46
一、利用一个字符变量 s 和一个计数变量 c 表示当前字符和数量,再用一个结果变量 res 记录最终结果 二、利用栈进行存储,最终过滤 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param param string字符串 # @return 展开全文
头像 空中转体一周半
发表于 2022-03-12 11:33:13
空间O(1)时间O(N)解法:只需用一个count记录上一个字符出现的次数即可,如果count=1则直接向结果追加字母,不加数字,如果count>1才追加出现的次数。 public class Solution { public String compressString (Strin 展开全文
头像 姐姐的遮阳伞
发表于 2022-04-01 16:15:41
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param param string字符串 * 展开全文
头像 BlueProtocol
发表于 2022-10-09 13:31:30
public class CompressString { public String compressString(String param) { // write code here i 展开全文
头像 牛客768685351号
发表于 2022-03-16 12:23:36
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param param string字符串 * @return string字符串 展开全文
头像 233的夕照
发表于 2022-06-19 15:10:07
public String compressString (String param) { StringBuilder sb = new StringBuilder(); int index = 0; while(index<param.length()) { 展开全文
头像 靠近1
发表于 2024-07-27 17:59:48
#include <string> class Solution { public: string compressString(string param) { int n = param.size(); string ret; 展开全文
头像 牛客600608245号
发表于 2023-09-07 15:35:35
利用结构体和栈,将不同的字符压入栈中,如果字符相同则将结构体的sum+1,查找完成后将栈反转,同时输出栈中字符和大于一的情况。 #include <algorithm> #include <stack> #include <string> class Soluti 展开全文
头像 程序员Realeo
发表于 2024-10-22 15:30:19
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param param string字符串 * @ 展开全文
头像 Mr.galaxy
发表于 2023-01-10 21:20:42
#include <string> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param param string字符串 展开全文