blog

最も長い公開接頭辞

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

Mar 13, 2020 · 2 min. read
シェア

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

要件

 ["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

C言語の落とし穴と欠陥に関する注意事項

ステップ 1: Split 0) とそれが変更する変数は「戻り値が NULL の関数ポインタ」を意味します。2番目のステップと組み合わせると、0は「戻り値がNULLの関数へのポインタ」となります。 まとめると

Mar 13, 2020 · 2 min read