题解:今天的每日一题比较简单,思路是遍历字符串,遇到第一个数字x的时候,把数字x和前面的字母y删除,也就是删除yx。
1、为什么前面一定是字母,因为遇到的是第一个数字,前面不可能再有数字。
2、如何实现删除yx,重新定义一个字符串,每一次遍历将y前面的字符串与x后的字符串拼接起来。C++里用string.substr()函数拼接。
官方题解是栈。
class Solution { public: string clearDigits(string s) { int len = s.length(); string str=s; for(int i = 0; i < len; i++) { if(str[i] >= '0' && str[i] <= '9') { str = str.substr(0,i-1)+str.substr(i+1,len); len = len - 2; i = 0 ; } } return str; } };
标签:数字,2024.9,leetcode,str,题解,字符串,3174,string From: https://www.cnblogs.com/jkxjkx2000/p/18399326