【发布时间】:2015-10-18 19:30:32
【问题描述】:
我刚参加了一个代码测试,想知道为什么我的解决方案只得分 37/100。问题是你得到了一个String 并且必须通过它搜索有效的密码。
规则如下:
1) 有效密码以大写字母开头,不能包含任何数字。输入限制为 a-z、A-Z 和 0-9 的任意组合。
2) 他们希望您创建的方法是假设返回最大有效密码的大小。因此,例如,如果您输入“Aa8aaaArtd900d”,则假设数字 4 由求解方法输出。如果没有找到有效的字符串,该方法应该返回 -1
我似乎无法弄清楚我的解决方案哪里出了问题。任何帮助将不胜感激!也非常感谢任何有关如何更好地测试此类代码的建议。
class Solution2 {
public int solution(String S) {
int first = 0;
int last = S.length()-1;
int longest = -1;
for(int i = 0; i < S.length(); i++){
if(Character.isUpperCase(S.charAt(i))){
first = i;
last = first;
while(last < S.length()){
if(Character.isDigit(S.charAt(last))){
i = last;
break;
}
last++;
}
longest = Math.max(last - first, longest);
}
}
return longest;
}
}
添加了更新的解决方案,有什么想法可以进一步优化吗?
【问题讨论】:
-
你的代码给出的是什么而不是 4?
-
我的代码确实返回了 4。由于某种原因,代码测试不喜欢我的答案。当我测试它时,它似乎工作正常。我的问题是关于程序失败的地方。该测试声称它仅适用于 37% 的测试用例。
-
如果您正确缩进代码,可能更容易发现错误。
-
抱歉,现在怎么样了?
-
比我为你编辑它时更糟糕。提示:如果您在相邻行上有两个结束
}具有相同的缩进,则说明您没有正确缩进。
标签: java string validation testing