利用字符出现的次数,编写一个方法,实现基本的字符串压缩功能。
2014-05-29 10:18
846 查看
利用字符出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串为aabccccaaa,会变为a2b1c5a3.若“压缩”后的字符串没有变短,则返回原先的字符串。
1.使用stringstream将int转化为string
2
3.
Append character to string
Appends character c to the end of the string, increasing its length by
one.
string StringCompress(const string &s)
{
string retStr;
if(s.length() == 0)
return retStr;
char tmpChar = s.at(0);
int charCount = 0;
for(string::const_iterator it = s.begin();it != s.end();it++)
{
if(*it ==tmpChar)
{
charCount++;
}
else
{
retStr.push_back(tmpChar);
//使用stringstream将int转化为string
stringstream ss;
ss<<charCount;
string tmpStr = ss.str();
retStr.append(tmpStr);
tmpChar = *it;
charCount = 1;
}
if (it == s.end()-1)
{
retStr.push_back(tmpChar);
//使用stringstream将int转化为string
stringstream ss;
ss<<charCount;
string tmpStr = ss.str();
retStr.append(tmpStr);
}
}
if (retStr.length()<s.length())
{
return retStr;
}
else
{
return s;
}
}
1.使用stringstream将int转化为string
2
string (1) | string& append (const string& str); |
---|---|
substring (2) | string& append (const string& str, size_t subpos, size_t sublen); |
c-string (3) | string& append (const char* s); |
buffer (4) | string& append (const char* s, size_t n); |
fill (5) | string& append (size_t n, char c); |
range (6) | template <class InputIterator> string& append (InputIterator first, InputIterator last); |
initializer list(7) | string& append (initializer_list<char> il); |
std::string::push_back
void push_back (char c);
Append character to string
Appends character c to the end of the string, increasing its length by
one.
string StringCompress(const string &s)
{
string retStr;
if(s.length() == 0)
return retStr;
char tmpChar = s.at(0);
int charCount = 0;
for(string::const_iterator it = s.begin();it != s.end();it++)
{
if(*it ==tmpChar)
{
charCount++;
}
else
{
retStr.push_back(tmpChar);
//使用stringstream将int转化为string
stringstream ss;
ss<<charCount;
string tmpStr = ss.str();
retStr.append(tmpStr);
tmpChar = *it;
charCount = 1;
}
if (it == s.end()-1)
{
retStr.push_back(tmpChar);
//使用stringstream将int转化为string
stringstream ss;
ss<<charCount;
string tmpStr = ss.str();
retStr.append(tmpStr);
}
}
if (retStr.length()<s.length())
{
return retStr;
}
else
{
return s;
}
}
相关文章推荐
- 利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。
- 利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。
- 基本字符串压缩 利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。
- 利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。 给定一个stri
- 【Java】编写一个方法,实现基本的字符串压缩功能
- 面试5之编写一个方法,实现基本的字符串压缩功能。
- Java编程实现统计一个字符串中各个字符出现次数的方法
- ASP.NET从字符串中查找字符出现次数的具体实现方法
- 一个字符串中出现次数最多的字符 统计这个次数【实现代码】
- 利用C语言实现:输入两个字符串,统计一个字符串在另一个字符串中出现的次数 。
- c#--编写一个名称为MyClass一个类,在该类中编写一个方法,名称为CountChar,返回值为整型,参数两个,第一个参数可以是字符串、整数、单精度、双精度,第二个参数为字符,方法功能返回第二个参
- 在SQL中获取一个长字符串中某个字符串出现次数的实现方法
- 编写一个函数,删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。
- 【C语言】编写一个程序统计输入字符串中: 各个数字、空白字符、以及其他所有字符出现的次数。
- 【C语言】编写一个程序统计输入字符串中: 各个数字、空白字符、以及其他所有字符出现的次数。
- C语言:编写一个程序统计输入字符串中,各个数字、空白字符、以及其他所有字符出现的次数。
- 利用php实现获取一个文件中一个单词或者字符串出现的次数
- 1.编写一个名称为MyClass一个类,在该类中编写一个方法,名称为CountChar,返回值为整型,参数两个,第一个参数可以是字符串、整数、单精度、双精度,第二个参数为字符,方法功能返回第二个参数在
- C语言:编写一个程序统计输入字符串中,各个数字、空白字符、以及其他所有字符出现的次数。
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。 要求实现函