[JAVA]コードテスト:新しいアイデンティティを推奨
コーディングテスト:新しいアイデンティティを推奨
質問する
I/O例
返信コード
import java.util.*;
class Solution {
public String solution(String new_id) {
String answer = "";
answer = new_id.toLowerCase(); //1단계
answer = answer.replaceAll("[^-_a-z0-9.]",""); //2단계
answer = answer.replaceAll("[.]{2,}","."); //3단계
answer = answer.replaceAll("^[.]|[.]$",""); //4단계
if (answer.equals("")){ //5단계
answer = "a";
}
if (answer.length()>15){ //6단계
answer = answer.substring(0,14);
if (answer.substring(14).equals(".")){
answer = answer.replace("[.]","");
} }
if (answer.length()<3){ //7단계
do {
answer += answer.substring(answer.length());
} while (answer.length()<3);
}
return answer;
}
}
実行結果
今日学んだこと(2021-11-25)
特に第二段階はどうすればいいのか、悩んでいました.条件文と重複文を使用すると、コードが長すぎると思います.したがって,他の方法を探す際に発見されたのは「正規式」であり,正規式を用いるには10秒以上の実行時間がかかり,プログラマから結果値を得ることができない.正規式のほかに、条件文や複文を乱用するほか、別の方法を探さなければならない.
パスした回答(2021-11-29)
class Solution {
public String solution(String new_id) {
//1단계
new_id = new_id.toLowerCase();
//2단계
String[] specialCharArr = {"~","!","@","#","$","%","^","&","*","(",")","=","+","[","{","]","}",":","?",",","<",">","/"};
for(int i=0; i<specialCharArr.length; i++){
if(new_id.contains(specialCharArr[i])){
new_id = new_id.replace(specialCharArr[i],"");
}
}
//3단계
if(new_id.contains("..")){
do {
new_id = new_id.replace("..",".");
} while (new_id.contains(".."));
}
//4단계
if (new_id.indexOf(".")==0){
new_id = new_id.replaceFirst(".","");
}
if (new_id.lastIndexOf(".")==new_id.length()-1 && new_id.length()>=2){
new_id=new_id.substring(0,new_id.length()-1);
}
//5단계
if(new_id.length()<1){
new_id = "aaa";
}
//6단계
if(new_id.length()>=16){
new_id = new_id.substring(0,15);
}
if(new_id.lastIndexOf(".")==new_id.length()-1&&new_id.length()>=2){
new_id = new_id.substring(0,new_id.length()-1);
}
//7단계
if(new_id.length()<=2 && new_id.length()>0){
do{
new_id += new_id.charAt(new_id.length()-1);
}while(new_id.length()<3);
}
String answer = new_id;
return answer;
}
}
Reference
この問題について([JAVA]コードテスト:新しいアイデンティティを推奨), 我々は、より多くの情報をここで見つけました https://velog.io/@wijoonwu/코딩테스트-신규-아이디-추천テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol