左填充
题目要求:
leftpad("foo", 5)
>> " foo"
leftpad("foobar", 6)
>> "foobar"
leftpad("1", 2, "0")
>> "01"
分析:
用单个字符来填充给定字符串,使其达到输入当中的size要求。由于题目中给的条件和描述都很模糊,所以这道题在lintcode上做出来的人很少,其实看懂题目的意思,这道题也就很好做了。
算法分析:
step1: 判断输入字符串的长度和要求的size,计算出他们的差值
step2:差值为多少,就输出一个差值大小的字符串,其中字符串的内容是有待插字符构成
step3:将第二步的字符串和源字符串拼接得到结果。
static string leftPad(string& originalStr,int size,char padChar = '')
{
int len = originalStr.size();
if (size < len)
{
return originalStr;
}
int k = size - len;
string tmp("");
while (k >= 1)
{
tmp += padChar;
k--;
}
string result = tmp + originalStr;
return result;
}