Delete it解题报告
来源:互联网 发布:淘宝瑜伽服模特是谁 编辑:程序博客网 时间:2024/06/05 06:09
描述:克林在打一行字母时总是会打多一个字符,比如想打”july”时会打成”juuly”,这样他需要删掉其中一个’u’。克林想知道他可以删掉哪个位置的字符就可以变成他真正想打的一行字母。
输入输出要求:
Input
第一行一个整数:T (测试个数)
每个测试
输入两行,两个字符串(全是小写字母)
串长为1 到1000000
第一个串长度刚好比第二个的长度大一
Output
每个测试数据:
第一行输出可以删除的位置个数P
如果P > 0 第二行输出可以删除的位置(小到大,空格隔开,位置从1 开始算)
输入输出样例:
Sample Input
3
juuly
july
abc
zz
aa
a
Sample Output
2
2 3
0
2
1 2
解题思路:定义两个变量i和j,i从a字符数组的左边开始,j从b字符数组的右边开始,找出a和b中相等的字符,i+1-(j-2)即为可以删除的个数,然后用一个循环就可以把可以删除的位置输出。
代码:
#include<iostream>
#include<cstring>
using namespace std;
char a[1000006];
char b[1000006];
int len;
int main()
{
int T;
int i,j,k;
cin>>T;
while(T--)
{
cin>>a>>b;
len=strlen(b);
i=-1;
while(a[i+1]==b[i+1])
i++;
j=len+1;
while(a[j-1]==b[j-2])
j--;
if(i+1-j+2<=0)
{
cout<<0<<endl;
}
else
{
cout<<i+1-j+2<<endl;
for(k=j-1;k<=i+1;k++)
{
if(k!=j-1 )
cout<<"";
cout<<k+1;
}
cout<<endl;
}
}
return 0;
}
解题感想:要考虑juuuuuuly和july的情况,题目给的样例真的有点坑……
- Delete it解题报告
- 【MySQL】【leetcode】 Delete Duplicate Emails解题报告
- A - Can you find it?解题报告
- hdu 1754 解题报告 I Hate It
- [leetcode] 237. Delete Node in a Linked List 解题报告
- 【LeetCode】Delete Node in a Linked List 解题报告
- [leetcode] 380. Insert Delete GetRandom O(1) 解题报告
- LeetCode 237. Delete Node in a Linked List 解题报告
- [leetcode] 450. Delete Node in a BST 解题报告
- [Leetcode] 237. Delete Node in a Linked List 解题报告
- [Leetcode] 380. Insert Delete GetRandom O(1) 解题报告
- [Leetcode] 450. Delete Node in a BST 解题报告
- POJ-1094 Sorting It All Out 解题报告
- HDU1754 I Hate It 解题报告--线段树
- POJ-1308 & HDOJ-1325 Is It A Tree? 解题报告
- 解题报告 之 UVA11093 Just Finish it up
- acm解题报告 HDU 2141 Can you find it?
- POJ 1094 Sorting It All Out (拓扑排序) -- 解题报告
- hdu 3586 树形dp +二分
- inline在C++中的作用(转)
- jQuery each()学习一下
- UVALive 6039 Let's Go Green (贪心)
- QT学习1 QSlider 更改样式 .
- Delete it解题报告
- DB2中SQLSTATE=57016 SQLCODE=-668,原因码 "7"的解决
- 黑马程序员____基础加强____静态导入&可变参数&增强for循环
- ajax 防止用户反复提交
- oracle常用sql语句(综合)
- ios 重用UITableViewCell created from a XIB
- java 总结
- linux信号的机制
- 常用的15种Jquery