Leetcode-5207 Get Equal Substrings Within Budget(尽可能使字符串相等)

本文介绍了一种计算两个字符串相似度的方法,并通过一个具体的类`Solution`实现了一个名为`equalSubstring`的函数。该函数接收两个字符串`s`和`t`及整数`maxCost`作为参数,返回`s`中可以通过更改字符使其与`t`相同且更改成本不超过`maxCost`的最大长度子串长度。
 1 typedef long long ll;
 2 #define _for(i,a,b) for(int i = (a);i < b;i ++)
 3 #define _rep(i,a,b) for(int i = (a);i > b;i --)
 4 #define INF 0x3f3f3f3f
 5 #define pb push_back
 6 #define maxn 10000
 7 
 8 class Solution
 9 {
10     public:
11         vector<int> d;
12         int equalSubstring(string s, string t, int maxCost)
13         {
14             int ans = 0;
15             _for(i,0,s.size())
16             {
17                 if(s[i]>t[i])
18                     d.pb(s[i]-t[i]);
19                 else
20                     d.pb(t[i]-s[i]);
21             }
22             int st = 0,ed = 0;
23             int sum = 0;
24             while(ed < d.size() && st<=ed)
25             {
26                 sum += d[ed];
27                 if(sum <= maxCost)
28                 {
29                     ans = max(ans,ed-st+1);
30                     ed ++;
31                 }
32                 else
33                 {
34                     sum -= d[st];
35                     st ++;
36                     ed ++;
37                 }
38             }
39             return ans;
40         }
41 };

 

转载于:https://www.cnblogs.com/Asurudo/p/11607871.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值