代码随想录算法训练营第11天 | 20. 有效的括号 1047. 删除字符串中的所有相邻重复项 150. 逆波兰表达式求值

一、Leetcode 20. 有效的括号

有的同学经常会想学的这些数据结构有什么用,也开发不了什么软件,大多数同学说的软件应该都是可视化的软件例如APP、网站之类的,那都是非常上层的应用了,底层很多功能的实现都是基础的数据结构和算法。所以数据结构与算法的应用往往隐藏在我们看不到的地方!

很经典的题目,我五年前就学过。只不过当时是c现在是c++的stack。如果当时,我留级转了计算机,现在就不用刷题了。当然也不会保研因为卷不过他们。也就是说,学海无涯,学习是一件耗青春的事,因此要学就学好基本功,比如数学,英语,coding,计算机,到了岗位上再拓展。机器人尤其是这样,它是一个综合学科,一个本科生是学不全机器人的。那就应该从基本功练起。

二、Leetcode 1047. 删除字符串中的所有相邻重复项

好吧,整理一下string容器的用法。原文链接
成员函数如下:

size()//获取字符串长度
insert()//插入字符串
append()//插入字符串
erase()//删除任意字符,时间复杂度O(n),n为字符串长度
substr()//截取字符字串
back()//获取最后一个字符
pop_back()//删除最后一个字符,时间复杂度O(1)
empty()//判断是否为空
clear()//清空字符串
string常用的三种插入方法:

1+号
s+="b"后:s=ab

2insert()
s.insert(2,"c")后:s=abc

3、append
s.append("d")后:s=abcd

查看字符串大小
s.size()=4

截取字符串
s.substr(1,2)=bc

删除特定字符
s.erase(0,2): s=cd

删除最后一个字符
s.pop_back()后:s=c

两种判断字符串是否为空的方法
1、s.empty()等于1时即为空,等于0时非空
2、用s==判断,等于1时即为空,等于0时非空
s.empty() = 0
(s=="") = 0

两种清空字符串方法
1、s.clear()
2、s=""

清空后
s.empty() = 1
(s=="") = 1

string 的比较是以逐个字母的ascii码进行比较的。但是要注意单引号和双引号的区别。
"a"和’a’的区别,前者是字符串,后者是字符。
实际上,"a"在内存中一般占2个字节(不是说字符串长度,是占用内存。注意说是一般占2字节,有特殊情况),“a\0”,以’\0’结尾。
而’a’是一个单字符。
字符串转换

stoi(),将字符串转换为整型
stof(),将字符串转换为floatstoll(),把字符串转换为long long int
stod(),将字符串转换为double

string 遍历方法:

  1. 下标遍历:通过下标随机访问逐个遍历。for(int i=0;i<s.size();i++)
  2. foreach遍历,for(char c:s)

三、Leetcode 150. 逆波兰表达式求值

注意用到栈,就要注意FIFO还是LIFO,运算顺序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值