C++学习笔记——erase删除字符串中特定字符 由leetcode383题想到的
来源:互联网 发布:c语言画线函数 编辑:程序博客网 时间:2024/06/08 15:55
之前写过一篇文章关于erase和unique的联合运用删除数组中的相同的数字,今天做leetcode的时候发现erase的本质是对单个元素的删除
今天借用leetcode 383题来看下erase删除容器中的特定的字符的操作
题目是这样的:Given an arbitrary ransom note string and another string containing letters from all the magazines, write a function that will return true if the ransom note can be constructed from the magazines ; otherwise, it will return false.
Each letter in the magazine string can only be used once in your ransom note.
Note:
You may assume that both strings contain only lowercase letters.
canConstruct(“a”, “b”) -> false
canConstruct(“aa”, “ab”) -> false
canConstruct(“aa”, “aab”) -> true
class Solution {public: bool canConstruct(string ransomNote, string magazine) { int flag=0; for(int i=0;i<ransomNote.size();i++) { char letter=ransomNote[i]; auto result=find(magazine.begin(),magazine.end(),letter); if(result!=magazine.end()) magazine.erase(result); else { flag=1; break; } } if( flag==0 ) return true; else return false; }};
迭代器是[begin,end)的左闭右开区间,程序中当result没有找到字符时返回end,否则返回字符的位置,当找到magazine的位置是,用erase删除该位置的字符,即
auto result=find(magazine.begin(),magazine.end(),letter);magazine.erase(result);
这种find和erase的结合 可以实现删除字符串中特定字符的操作
由于博主的学识有限,难免会出现错误,欢迎大家在评论区批评,指正,交流,也欢迎大家对博文的内容上的继续补充
- C++学习笔记——erase删除字符串中特定字符 由leetcode383题想到的
- C语言实现删除字符串中特定的字符
- [算法学习]在字符串中删除特定的字符
- C学习笔记--在字符串中删除指定的字符
- 每天一道算法题(7)——在字符串中删除特定的字符
- 在字符串中删除特定的字符
- 在字符串中删除特定的字符
- 在字符串中删除特定的字符
- 在字符串中删除特定的字符
- 在字符串中删除特定的字符
- 字符串中删除特定的字符
- 在字符串中删除特定的字符
- 在字符串中删除特定的字符
- 在字符串中删除特定的字符
- 在字符串中删除特定的字符
- 在字符串中删除特定的字符
- 在字符串中删除特定的字符
- 删除字符串中某些特定的字符
- 命令行建表
- Pixhawk---在cmake编译方式下新建一个自定义主题
- 解读express 4.x源码
- android studio 常用快捷键
- GOF之解释器模式
- C++学习笔记——erase删除字符串中特定字符 由leetcode383题想到的
- dojox.widget.rotator.Controller
- HDU 5773 The All-purpose Zero
- 如何快捷的判断一批索引中不存在的或 close 的索引
- 桥梁模式
- Palindrome
- 跟着9张思维导图学习Javascript
- 进程间通信——AIDL实例演示
- 安装python3.5.2 error code is 2503