LeetCode 1544整理字符串

本文介绍了一个字符串处理算法,通过使用栈结构消除字符串中相邻的小写和大写字符对,最终返回处理后的字符串。该算法适用于PHP后端开发,详细解释了实现过程和代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目链接:1544整理字符串

题意:

    给出一个字符串,如果相邻的两个字符  s[i] 是小写字符,s[i+1]是相同的大写字符,例如:e和E,那么这两个字符可以消掉,问最终的字符串为什么

解题思路:

   用一个栈保存字符串,当后一个和栈顶的满足情况时,pop出栈顶元素,返回最终栈里的元素

因为今后可能要做PHP(要么就是GO)后端,为了练习,所以今后使用PHP写算法,但是算法思想都一样,只是换了个语言

代码

class Solution {

    /**
     * @param String $s
     * @return String
     */
    function makeGood($s) {
    	$k = strlen($s);
    	$a = [];
    	for($i = 0; $i < $k; $i++){
    		if(count($a) == 0){
    			array_push($a, $s[$i]);
    		}else if($s[$i] >= 'a' && $s[$i] <= 'z' && strtoupper($s[$i]) == end($a)){
    			array_pop($a);
    		} else if($s[$i] >= 'A' && $s[$i] <= 'Z' && strtolower($s[$i]) == end($a)){
    			array_pop($a);
    		} else {
    			array_push($a, $s[$i]);
    		}
    	}
    	$a = implode('', $a); // 将数组转换为字符串进行输出
    	return $a;
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值