字符串的介绍和使用

对于字符串的话,我们已经比较熟悉了,来通过几个有意思的题加深理解一下吧。

class Solution {

public:

string addBinary(string a, string b) {

string ret;

int n=a.size()-1,m=b.size()-1;

int t=0;

while(n>=0||m>=0||t){

if(n>=0) t+=a[n--]-'0';

if(m>=0) t+=b[m--]-'0';

ret+=(t%2)+'0';

t/=2;

}

reverse(ret.begin(),ret.end());

return ret;

}

};

class Solution {

public:

string multiply(string num1, string num2) {

int n=num1.size(),m=num2.size();

reverse(num1.begin(),num1.end());

reverse(num2.begin(),num2.end());

vector<int> ret(m+n-1);

for(int i=0;i<n;i++){

for(int j=0;j<m;j++){

ret[i+j]+=(num1[i]-'0')*(num2[j]-'0');

}

}

string result;

int t=0,i=0;

while(i<m+n-1||t!=0){

if(i<m+n-1){

t+=ret[i++];

}

result+=(t%10)+'0';

t/=10;

}

while(result.size()>1&&result.back()=='0') result.pop_back();

reverse(result.begin(),result.end());

return result;

}

};

class Solution {

public:

string removeDuplicates(string s) {

string ret;

for(auto e: s){

if(ret.size()&&e==ret.back()) ret.pop_back();

else ret+=e;

}

return ret;

}

};

class Solution {

public:

bool backspaceCompare(string s, string t) {

return change(s)==change(t);

}

string change(string& s){

string ret;

for(auto e : s){

if(e!='#') ret+=e;

else if(ret.size()) ret.pop_back();

}

return ret;

}

};

相关推荐
吃好睡好便好8 小时前
在Matlab中绘制横直方图
开发语言·学习·算法·matlab
仰泳之鹅9 小时前
【C语言】自定义数据类型2——联合体与枚举
c语言·开发语言·算法
x_yeyue11 小时前
三角形数
笔记·算法·数论·组合数学
念何架构之路12 小时前
Go语言加密算法
数据结构·算法·哈希算法
AI科技星12 小时前
《数学公理体系·第三部·数术几何》(2026 年版)
c语言·开发语言·线性代数·算法·矩阵·量子计算·agi
失去的青春---夕阳下的奔跑12 小时前
560. 和为 K 的子数组
数据结构·算法·leetcode
黎阳之光12 小时前
黎阳之光:以视频孪生重构智慧医院信息化,打造高标项目核心竞争力
大数据·人工智能·物联网·算法·数字孪生
丷丩13 小时前
三级缓存下MVT地图瓦片服务性能优化策略
算法·缓存·性能优化·gis·geoai-up
m0_6294947313 小时前
LeetCode 热题 100-----25.回文链表
数据结构·算法·leetcode·链表
ʚ希希ɞ ྀ14 小时前
单词拆分----dp
算法