2017-02-04 98 views
1

我遇到了一個問題,關於codingbat,問題是:Codingbat問題 - 字符串

給定一個字符串,返回作出的最後2個字符的原始字符串的3份新的字符串。字符串長度至少爲2. 我解決了這個問題,並且解決方案(下面)比我的解決方案更好,但是解決方案代碼存在問題,當字符串長度小於2時,比如說長度是隻有1. str指數將爲-1。代碼仍然工作?爲什麼網站說這個解決方案是正確的?

public String extraEnd(String str) { 
     String end = str.substring(str.length()-2); 
     return end + end + end; 
+3

*「爲什麼網站說解決方案是正確的?」* - > *「字符串長度至少爲2」* ...爲什麼你忽略該規則? – Tom

+0

當你說最後一個*兩個字符*時,你認爲'String'至少有兩個'chars'。 –

+0

好的,這段代碼在這種情況下是正確的,我在考慮沒有這樣的規則的情況。 – Kingsfull123

回答

0

網站會盡量給你儘可能多的測試,可以確保它的大部分沒有錯誤的,但有些就滑過裂縫,使例外。下面的代碼是一個通過所有測試的工作,如果你想給它一個去;

public String extraFront(String str) { 
    if (str.length() <= 2) 
    return str+str+str; 
return str.substring(0,2)+str.substring(0,2)+str.substring(0,2); 
} 

看來你的代碼是正確的,索引是-1。也許跟着第二場比賽的挑戰,它會派上用場。祝你好運!