题目
编写一个函数repeatStr,该函数会string精确重复给定的字符串n。
repeatStr(6, "I") // "IIIIII"
repeatStr(5, "Hello") // "HelloHelloHelloHelloHello"
测试用例:
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class SolutionTest {
@Test public void test4a() {
assertEquals("aaaa", Solution.repeatStr(4, "a"));
}
@Test public void test3Hello() {
assertEquals("HelloHelloHello", Solution.repeatStr(3, "Hello"));
}
@Test public void test5empty() {
assertEquals("", Solution.repeatStr(5, ""));
}
@Test public void test0kata() {
assertEquals("", Solution.repeatStr(0, "kata"));
}
@Test public void testNegativeRepeat() {
assertEquals("", Solution.repeatStr(-10, "kata"));
}
}
解题
My:
public class Solution {
public static String repeatStr(final int repeat, final String string) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < repeat; i++) {
sb.append(string);
}
return sb.toString();
}
}
后记
大家的想法还是惊人的相似,甚至是变量的取名,也有不一样的,所以有一点值得说,如果传入值为空怎么办,题目没有特别说明不需要考虑输入验证。