blog

最も長い公開接頭辞

文字列の配列から、最長の共通接頭辞を見つける関数を書きます。共通の接頭辞がない場合は、空の文字列を返します。 配列をソートします。ソートは文字の並び順に従って行い、配列の最初の要素と最後の要素の文字を...

Mar 13, 2020 · 2 min. read
Share this

文字列の配列から最長の共通接頭辞を見つける関数を書きます。共通接頭辞が存在しない場合は、空の文字列を返します。

要件

 ["flower","flow","flight"]
出力: "fl"
 ["dog","racecar","car"]
出力: ""
パブリック接頭辞がない

感想です:

配列の並べ替えは、Arrays.sort(strs)並べ替えは文字順で、配列の最初の要素と文字の最後の要素を前から後ろに比較することができます。

感想

public class Main {
 public static String replaceSpace(String[] strs) {
 //チェック値が不正な場合は空文字列を返す
 if (!checkStrs(strs)) {
 return " ";
 }
 int len = strs.length;
 StringBuilder res = new StringBuilder();
 //文字列配列の要素を昇順にソートする
 Arrays.sort(strs);
 int m = strs[0].length;
 int n = strs[len-1].length;
 int num = Math.min(m, n);
 for (int i = 0; i < num; i++) {
 if (strs[0].charAt(i) == strs[len-1].charAt(i)) {
 res.append(strs[0].charAt(i));
 } else 
 break;
 }
 return res.toString();
 }
 
 private static boolean checkStrs(String[] strs) {
 boolean flag = false;
 if (strs != null) {
 //strsを繰り返し、要素の値をチェックする
 for (int i = 0; i < strs.length; i++) {
 if (strs[i] != null && strs[i].length() != 0) {
 flag = true;
 } else {
 flag = false;
 break;
 }
 }
 }
 return flag;
 }
 public static void main(String[] args) {
 String[] strs = {"customer", "car", "cat"};
 System.out.println(Main.replaceSpace(strs));
 }
}
Read next

ITripプロジェクトのSolr環境構築

solrのインクリメンタルアップデートの設定、つまり、データベースのデータを定期的にsolrにインポートし、同期機能を実現します。 Segmenterは、ユーザーが入力したテキストからキーワードを抽出し、他の業務に利用します。 キーワードによるマルチフィールド検索には、solrが対応する検索メカニズムを提供します。 上記のsolrサービスの構築に成功し、プロジェクトに次のsolrサービスの統合。

Mar 13, 2020 · 2 min read