题目要求
- 给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。
/**
* 去除重复字母
* Class _0316
*/
class _0316
{
/**
* @param String $s
* @return String
*/
public function removeDuplicateLetters($s) {
$newStr = [];
$strCodes = str_split($s);
for ($i = 0; $i < count($strCodes); $i++) {
$code = $strCodes[$i];
if (in_array($code, $newStr)) continue;
while (!empty($newStr) && ord(end($newStr)) > ord($code) && in_array(end($newStr), array_slice($strCodes, $i))) {
array_pop($newStr);
}
$newStr[] = $code;
}
return implode('', $newStr);
}
}