常量与变量之间的区别

算法题

20. 有效的括号 - 力扣(LeetCode)

这个题我们采用stack栈的方式来进行相应的括号匹配

情况有以下几种

  1. 当字符串s中只有一个字符的时候,那这个时候字符串一定是不匹配的所以直接返回false
  2. 当字符串为发生标准匹配的时候,返回false
  3. 当遍历结束返回栈是否为空,当栈不为空的时候,返回0,证明字符串没有完全匹配

代码如下

class Solution {
public:
    bool isValid(string s) {
        if (s.size() == 1)//如果只有一个字符直接返回false
            return false;
        stack<char>stk;
        for (int i = 0; i < s.size(); i++) {
            if (s[i] == '(' || s[i] == '{' || s[i] == '[')
            //遍历字符串,如果是左边的字符就进栈
                stk.push(s[i]);
            else {
                if (stk.empty())//如果字符是右括号且栈为空,直接返回false
                    return false;
                if ((stk.top() == '{') && (s[i] == '}'))//匹配{}
                    stk.pop();
                else if ((stk.top() == '(') && (s[i] == ')'))//匹配()
                    stk.pop();
                else if ((stk.top() == '[') && (s[i] == ']'))//匹配[]
                    stk.pop();
                else
                    return false;//没有匹配上,返回false
            }
        }
        return stk.empty();//如果此时栈为空,证明全部匹配上。返回true
    }
};

c++基础复习

C/C++ 中有哪些基本数据类型?

C/C++中公有的数据类型为 字符char,短整型 short,无符号整型 unsigned int 整型 int,长整型 long long ,单精度浮点型 float,双精度浮点型double。

C++比C语言多了一个字符串类型 string,布尔类型bool

它们的存储大小和取值范围是多少?

在64为的编译器下

字符 char 1字节,-128到+127

短整型 short 2字节,-32768到32767

无符号整型 unsigned int 4字节  0 到 4294967295

整型 int 4字节  -2147483648~2147483647 

长整型long:   8个字节
long long:  8个字节

单精度浮点型 float:  4个字节

双精度浮点型 double:   8个字节

什么是常量和变量?

变量:

变量代表一段可以执行操作的内存,程序可以通过变量名字来访问相应的内存空间。

变量代表一个有类型且有名字的存储单元,int a,a就是一个变量

变量可以用来存放数据比如 a=2

变量的值可以进行修改,int a=1;a=2;

变量的生命周期

变量分为全局变量与静态变量,存放在静态区,生命周期随着程序存在,直到程序结束

非静态局部变量,存放在栈区

通过new申请的空间,存放在堆区,这部分的内存我们需要delete手动释放.

常量:

在程序中比如 2,3,1这种数值被我们称作常量

通常被const修饰的量我们称之为常量。

#define宏定义的变量,也算常量

它们在 C/C++ 中有哪些区别? 

变量的值可以进行修改,常量的值不能被修改

常量在程序中一旦被定义,就不能再次赋值,而变量可以被多次赋值修改

变量要在使用之前先定义,常量可以在定义的同时进行初始化

变量在内存中有自己的存储空间,常量一般被编译器直接嵌入程序中,不占额外的空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值