简单题:判断一个数的数字计数是否等于数位的值
//哈希表计数法
class Solution {
public:
bool digitCount(string num) {
vector<int> mp(10,0); //动态的序列容器 map(关键词,关键字)
for(char c:num){
mp[c-'0']++; //关键字是数字类型,num是字符类型,需要减去‘0’字符,每一项都加1,循环
}
for(int i=0;i<num.length();i++){
if(num[i]-'0'!=mp[i]){ //比较记录的次数和原先的数字
return false;
}
}
return true;
}
};
-
知识点:关于vector
vector是一个动态的序列容器,相当于一个size可变的数组。
vector的简单使用:
声明及初始化:方式一:vector s;
方式二:vector s(10);初始化s容器中10个向量
使用vector需要注意的点:
1: 当需要使用vector的时候,需要包含头文件:#include ,一般加上using namespace std;
2:如果不加,则在调用时候必须用std::vector<…>这样的形式,即在vector前加上std::,这表示运用的是std命名空间下的vector容器:
3:使用vector 不需要动态操作内存,不用担心内存泄露等问题;原文链接:https://blog.csdn.net/pigdwh/article/details/81808740
vector<int> a;
a.push_back(1); //在尾部加入一个数据
a.push_back(2);
a.pop_back(); //删除最后一个数据
-
map知识点
map是STL的一个关联容器,它提供一对一的hash。
第一个可以称为关键字(key),每个关键字只能在map中出现一次;
第二个可能称为该关键字的值(value);
引用:http://t.csdn.cn/sMArr -
JAVAcharAt的作用
是返回字符串指定位置的char值。如果s=“102”。那么chatAt(0)=‘1’,这个‘1’是字符,不是数字。为啥-48,其实是为了转换为数字。**字符’0’的ascii码是48.**数字0的值是0.所以’0’和0差48 以此类推 一个字符转换对应的值,就要减去48,即减去’0’。
————————————————
原文链接:https://blog.csdn.net/nkd50000/article/details/100143484
加油!!!