[ABC370C] Word Ladder 题解
1.[ABC347C] Ideal Holidays题解2.《扶苏的问题》题解3.[ABC366C] Balls and Bag Query 题解4.[ABC366D] Cuboid Sum Query 题解5.P7706 文文的摄影布置 题解
6.[ABC370C] Word Ladder 题解
7.P11020 「LAOI-6」Radiation 题解8.P11019 「LAOI-6」[太阳]] 请使用最新版手机 QQ 体验新功能 题解9.[ABC371D] 1D Country 题解10.[ABC371D] 1D Country 线段树解法11.P1955 程序自动分析 题解12.[ABC376E] Max × Sum 题解13.[ABC379D] Home Garden 题解14.P11276 第一首歌 题解15.[ABC380C] Move Segment 题解题目描述:
给予两个相等长度的序列,
拿过题一看,感觉还是蛮简单的,本题主要的难点在字符串的字典序上。
字符串字典序的定义:
- 若两个字符串的长度相等,从左向右依字符逐个比较,第一对不相等的字符的大小即为这两对字符串的大小。
- 若长度不相等,则较长的字符串较大。
- 若长度相等且每个字符都相等,则这两个字符串相等。
则此题的解法其实就是一种贪心:
所以先从左向右扫,若 s[i]!=t[i]&&s[i]>t[i]
就修改
之后再从右往左扫,若 s[i]!=t[i]
就修改
#include <bits/stdc++.h>
#define seq(q, w, e) for (int q = w; q <= e; q++)
#define ll long long
using namespace std;
const int maxn = 1e5+10;
string s1,s2;
int ans;
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>s1>>s2;
int n=s1.length();
seq(i,0,n-1){
if(s1[i]!=s2[i]){
ans++; //由于要修改的字母量为定值,所以优先统计
}
}
cout<<ans<<"\n";
seq(i,0,n-1){
if(s1[i]-s2[i]>0){
s1[i]=s2[i];
cout<<s1<<"\n"; //无需存储,直接输出
}
}
for(int i=n-1;i>=0;i--){
if(s1[i]!=s2[i]){
s1[i]=s2[i];
cout<<s1<<"\n";
}
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具