📝
Leet Code [14] Longest Common Prefix
leetcode始めます。
主にPHPを使います。
まれにJSやRubyを使うかもしれません。
ごくまれに他の言語に挑戦するかもしれません。
<?php
/*
* @lc app=leetcode id=14 lang=php
*
* [14] Longest Common Prefix
*/
// @lc code=start
class Solution {
/**
* @param String[] $strs
* @return String
*/
function longestCommonPrefix($strs) {
$result = '';
$startsBy = [];
for ($i = 0; $i <= 200; $i++){
$char = '';
foreach($strs as $str) {
// 文字数が$iに追いついたら終了
if (strlen($str) === $i){
$char = '';
break;
}
if ($char === '') {
// 1周目は変数に格納
$char = substr($str, $i, 1);
} elseif ($char === substr($str, $i, 1)) {
// 2周目以降は同じ文字なら継続、異なれば終了
continue;
} else {
// 異なれば、その文字は破棄
$char = '';
break;
}
}
// $charに値があれば、そこまでは同じprefixを持っている
// マージ用の変数に詰めて、$charを初期化
if ($char !== '') {
$startsBy[] = $char;
$char = '';
} else {
// $charが空でくれば処理終了
break;
}
}
// マージ用の変数をimplode
$result = implode('', $startsBy);
return $result;
}
}
// @lc code=end
Discussion