-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathleetcode_1370.php
62 lines (46 loc) · 1.46 KB
/
leetcode_1370.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
function sortString($s) {
$len = strlen($s);
$arr = str_split($s);
$new_arr = [];
$min = min($arr);
array_push($new_arr,$min);
$remain_arr = array_diff($arr,$new_arr);
while($remain_arr != []){
while($remain_arr != [] && min($remain_arr)>$new_arr[count($new_arr)-1]){
$min = min($remain_arr);
array_push($new_arr,$min);
$remain_arr = array_diff($remain_arr,$new_arr);
}
// print_r($remain_arr);
// 经过几轮array_diff,$remain_arr已经是空了
for($i=0;$i<count($new_arr);$i++){
$element = $new_arr[$i];
$first_index = array_search($element,$arr);
array_splice($arr,$first_index,1);
}
$remain_arr = $arr;
if($remain_arr == []){
break;
}
$max = max($remain_arr);
array_push($new_arr,$max);
$remain_arr = array_diff($remain_arr,[$max]);
// print_r($remain_arr);
while($remain_arr != [] && max($remain_arr)<$new_arr[count($new_arr)-1]){
$max = max($remain_arr);
array_push($new_arr,$max);
$remain_arr = array_diff($remain_arr,[$max]);
}
for($i=0;$i<count($new_arr);$i++){
$element = $new_arr[$i];
$first_index = array_search($element,$arr);
array_splice($remain_arr,$first_index,1);
}
$remain_arr = $arr;
// print_r($remain_arr);
}
print_r($new_arr);
}
$s = "leetcode123456";
sortString($s);