数据结构与算法之string篇
来源:互联网 发布:一直播如何挂淘宝链接 编辑:程序博客网 时间:2024/06/05 14:29
string
一、定义
二、操作
成员函数(方法):append
非成员函数:prev fill
三、题型分析
1.回文序列
1)判断字符串是否为回文字符串
string s;
cin>>s;
auto a=s.begin(); auto b=prev(s.end());
while(a<b)
{
if(!::isalnum(*a)) a++;
else if(!::isalnum(*b)) b--;
esle if(*a!=*b) return false;
else
{
a++;b--;
}
}
2.模式匹配
1)暴力枚举法
string s1;string s2;
cin>>s1>>s2;
if(s1.empty()) return 0;
const int N=s1.size()-s2.size();
for(int i=0;i<N;i++)
{
int j=i; int k=0;
while(j<s1.size() && k<s2.size() && s1[j]==s2[k])
{
j++;
k++;
}
if(k==s2.size()) return i;
}
2)KMP算法
3.子序列问题
1)全排列
2)组合
4.类型转换
1)string to int(stoi)
int myAtoi(const string &str)
{
int num=0;int sign=1;
const int n=str.lengh();
int i=0;
while(str[i]==' '&&i<n) i++;
if(str[i]=='+') i++;
else if(str[i]=='-')
{
sign=-1;
i++;
}
for(;i<n;i++)
{
if(str[i]<'0' || str[i]>'9')
break;
if(num>INT_MAX/10 || (num==INT_MAX/10 && (str[i]-'0')>INT_MAX%10))
{return sign==-1?INT_MIN:INT_MAX;}
num=num*10+str[i]-'0';
}
return num*sign;
}
2)string类自带类型转换函数
to_string() stoi() stol() stoll() stoul()
5.字符串类动态规划
1)字符串相似度/编辑距离(edit distance)
滚动数组?
同类问题:n*m矩阵中的最短/最长路径
2)子串匹配
3)最长公共子序列
4)最长递增子序列
5)最大连续子序列和/积
6)矩阵链乘法
6.面试题汇总
1)替换空格
阅读全文
0 0
- 数据结构与算法之string篇
- 算法与数据结构 - String
- 《数据结构与算法》学习之入门篇
- java数据结构与算法之数组篇
- 【数据结构与算法】String 的简单实现
- 数据结构与算法学习笔记之--数据结构
- 数据结构与算法之----图
- 数据结构与算法之----串
- 数据结构与算法之----树
- 数据结构与算法之队列
- 算法与数据结构之单链表
- 数据结构与算法之数组
- 算法与数据结构之排序
- 数据结构与算法之大纲
- 数据结构与算法之排序
- 数据结构与算法之排序
- 数据结构与算法之 字符串
- 数据结构与算法之排序
- C++ #define
- python实现判断给定列表是否存在重复元素,且索引差小于k
- combobox实现下拉框及其值的获取
- 使用list方法插入datatable中的数据到数据库
- Power Strings(POJ-2406)(KMP简单循环节)
- 数据结构与算法之string篇
- sdut 数据结构实验之链表九:双向链表
- 怎么将本地文件上传到远程git仓库
- JAVA web连接MySQL报错添加SSL设置
- (TCP) 从服务器下载数据
- MFC UpdateData(FALSE)和UpdateData(TRUE)的区别
- Object Detection论文清单
- java设计模式
- 欢迎使用CSDN-markdown编辑器