LeetCode:スペースの置換
1212 ワード
タイトルの説明:
文字列のスペースを「%20」に置き換える関数を実装してください.例えば、文字列がWe Are Happyである.置換後の文字列は、We%20 Are%20 Happyである.
文字列のスペースを「%20」に置き換える関数を実装してください.例えば、文字列がWe Are Happyである.置換後の文字列は、We%20 Are%20 Happyである.
:
。
, 。
:
, 。
:
We Are Happy
:
We%20Are%20Happy
#include
#include
#include
#include
#include
#include
using namespace std;
// %20
class Solution {
public:
char* replaceSpace(char* str, int length)
{
int mstrlen = 0;
int spacelen = 0;
for (int i = 0; str[i] != '.'; i++)
{
mstrlen++;
if (str[i] == ' ')
spacelen += 3;
}
int newlength = mstrlen + spacelen;
if (newlength > length)
return NULL;
while (mstrlen >= 0 && newlength > mstrlen)
{
if (str[mstrlen] == ' ')
{
str[newlength--] = '0';
str[newlength--] = '2';
str[newlength--] = '%';
}
else
str[newlength--] = str[mstrlen];
mstrlen--;
}
return str;
}
};
int main()
{
Solution s;
char str[46] = {"We are happy. " };
cout << str << endl;
cout << s.replaceSpace(str, 46) << endl;
return 0;
}