博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 5414 CRB and String (字符串,模拟)
阅读量:5021 次
发布时间:2019-06-12

本文共 1148 字,大约阅读时间需要 3 分钟。

 

 

 

题意:给两个字符串s和t,如果能插入一些字符使得s=t,则输出yes,否则输出no。插入规则:在s中选定一个字符c,可以在其后面插入一个字符k,只要k!=c即可。

 

思路:特殊的情况就是s和t的最长相同字符的前缀不等长,则肯定插不进去,如s="aab",而t="aaab"。还有就是,如果第一个字符就不相同了,输出NO,因为不能在最前面插入(看定义)!

  只要将这个情况排除掉,其他的就好做了,从后面开始,匹配就往前扫,不匹配就在s中插入对应字符,如果s长度超过了t就输出NO,否则到最后肯定YES。

 

 

1 #include 
2 #define pii pair
3 #define INF 0x7f7f7f7f 4 #define LL long long 5 using namespace std; 6 const int N=100050; 7 char s[N]; 8 string s1, s2; 9 bool cal(int len1,int len2)10 {11 if( s1[0]!=s2[0] ) return false;12 if(len1==len2 && s1==s2 ) return true;13 if(len1==len2 && s1!=s2 ) return false;14 15 char c=s1[0];16 int i;17 for(i=0; i
s2.size()) return false; 43 }44 return true;45 }46 47 int main()48 {49 //freopen("input.txt", "r", stdin);50 int t;51 cin>>t;52 while(t--)53 {54 scanf("%s", s );55 s1=s;56 scanf("%s", s );57 s2=s;58 59 if( cal(s1.size(), s2.size()) )60 puts("Yes");61 else62 puts("No");63 }64 return 0;65 }
AC代码

 

转载于:https://www.cnblogs.com/xcw0754/p/4745907.html

你可能感兴趣的文章
如何对数据按某列进行分层处理
查看>>
[Qt] this application failed to start because it could not find or load the Qt platform plugin
查看>>
Git Submodule管理项目子模块
查看>>
学会和同事相处的30原则
查看>>
NOJ——1568走走走走走啊走(超级入门DP)
查看>>
文件操作
查看>>
Python:GUI之tkinter学习笔记3事件绑定(转载自https://www.cnblogs.com/progor/p/8505599.html)...
查看>>
jquery基本选择器
查看>>
hdu 1010 dfs搜索
查看>>
搭建wamp环境,数据库基础知识
查看>>
android中DatePicker和TimePicker的使用
查看>>
SpringMVC源码剖析(四)- DispatcherServlet请求转发的实现
查看>>
Android中获取应用程序(包)的大小-----PackageManager的使用(二)
查看>>
Codeforces Gym 100513M M. Variable Shadowing 暴力
查看>>
浅谈 Mybatis中的 ${ } 和 #{ }的区别
查看>>
CNN 笔记
查看>>
版本更新
查看>>
SQL 单引号转义
查看>>
start
查看>>
实现手机扫描二维码页面登录,类似web微信-第三篇,手机客户端
查看>>