[LintCode] Left Pad 左填充

时间:2024-01-11 20:24:38

You know what, left pad is javascript package and referenced by React:
Github link

One day his author unpublished it, then a lot of javascript projects in the world broken.

You can see from github it's only 11 lines.

You job is to implement the left pad function. If you do not know what left pad does, see examples below and guess.

Example
leftpad("foo", 5)
>> " foo"

leftpad("foobar", 6)
>> "foobar"

leftpad("1", 2, "0")
>> "01"

这道题让我们实现左填充,具体做法参见上面的例子,需要注意的是,如果给定的大小比原字符串的长度小的话,返回原字符串,即不做任何处理,如果大的话,再前面填充二者之差个给定的字符,那么可以写出代码如下:

解法一:

class StringUtils {
public:
static string leftPad(string& originalStr, int size, char padChar=' ') {
if (size <= originalStr.size()) return originalStr;
return string(size - originalStr.size(), padChar) + originalStr;
}
};

我们也可以压缩到一行直接写出来:

解法二:

class StringUtils {
public:
static string leftPad(string& originalStr, int size, char padChar=' ') {
return size <= originalStr.size() ? originalStr : string(size - originalStr.size(), padChar) + originalStr;
}
};