在Codewar.com中找到一个JavaScript作业:
本练习的目标是将字符串转换为新字符串 新字符串中的每个字符都是'(',如果该字符仅出现 一次在原始字符串中,或')'如果该字符显示更多 原始字符串中的一次。忽略大写时 确定某个字符是否重复。
示例:
"din" => "((("
"recede" => "()()()"
"Success" => ")())())"
"(( @" => "))(("
我尝试用Java完成作业,并提出了以下代码。我想知道这是编写代码的方式还是有更好的方法?如果是这样,请告诉我。
private static String duplicateEncode(String word) {
String encodeString = "";
String decodedString = word.toLowerCase();
for (int i = 0; i < decodedString.length(); i++) {
if (decodedString.substring(i + 1, decodedString.length())
.contains(String.valueOf(decodedString.charAt(i)))
|| decodedString.substring(0, i).contains(String.valueOf(decodedString.charAt(i)))) {
encodeString += ")";
} else {
encodeString += "(";
}
}
return encodeString;
}