2021 NAVER漫画開発チャレンジ1回コードテスト3回
5713 ワード
説明:
[問題は非公開]
に答える
テストを行うために、私は自分で数十万文字列を作って返しましたが、タイムアウトはありませんでした.嬉しいけど時間がかかりすぎて2問目がうまくできなかったので残念
[問題は非公開]
に答える
import java.util.*;
public class Solution {
public int solution(String s, String t) {
int count = 0;
StringBuilder builder = new StringBuilder();
int index = 0;
int block_length = t.length();
while(index < s.length()) {
builder.append(s.charAt(index++));
// continue if current string's length not enough to check target.
if(builder.length() < block_length) {
continue;
}
// if built string is long enough to check block.
// check changing block found.
int startIndex = builder.length() - block_length;
int endIndex = builder.length();// - 1; substring is exclusive
// if target string is found, remove from builder and count.
if(builder.substring(startIndex, endIndex).equals(t)) {
count++;
builder.delete(startIndex, endIndex);
}
}
return count;
}
}
同様に文字列処理の問題であり,論理的な難問よりも性能処理を重視する.メソッドのみを呼び出す場合、要求は数行で実現できますが、時間の複雑さが必要なため、制約を満たす場合に文字列をどのように処理するかを考慮しています.テストを行うために、私は自分で数十万文字列を作って返しましたが、タイムアウトはありませんでした.嬉しいけど時間がかかりすぎて2問目がうまくできなかったので残念
Reference
この問題について(2021 NAVER漫画開発チャレンジ1回コードテスト3回), 我々は、より多くの情報をここで見つけました https://velog.io/@park2348190/2021-네이버-웹툰-개발-챌린지-1차-코딩테스트-3번テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol