PHP 字谜分组算法

334 阅读1分钟

<?php

function puzzleGroup($puzzle)
{
    $puzzleA = json_decode($puzzle, true);
    $ret = array();
    foreach ($puzzleA as $value) {
        $strA = str_split($value);
        sort($strA, SORT_STRING); // 字符串比较
        $ret[implode('', $strA)][] = $value;
    }
    $ret = array_values($ret); // 重建数组索引
    return json_encode($ret);
}

$puzzle = '["eat","tea","tan","aet","nat","bat"]';
echo puzzleGroup($puzzle);
[
    [
        "eat",
        "tea",
        "aet"
    ],
    [
        "tan",
        "nat"
    ],
    [
        "bat"
    ]
]