23.3.16总结
创始人
2025-05-29 06:24:08
0

简单搜索&&进阶搜索 - Virtual Judge (vjudge.net)

D - Shuffle'm Up

编织字符串的操作将s1和s2拼接起来(注意这里s2先拼接,具体请看样例),得到长度为len*2的字符串s。

假设有s1="JNU",s2="ACM",s="NAMJUC"
第一次操作后得到s'="AJCNMU",与s不相等。
令s1="AJC",s2="NMU"
第二次操作后得到s'="NAMJUC",与s相等,结束循环。
输出操作次数为2

【输入】

第一行一个整数T(1≤T≤1000),代表测试数据组个数。
对于每组数据,第一行为len(1≤len≤100),第二行为字符串s1,第三行为字符串s2,第四行为字符串s。
输入保证s1和s2长度均为len,s长度为len*2

【输出】

对每一组数据,输出数据组编号和答案。
如果无论经过多少次操作也无法结束循环,答案输出-1

解题思路:

除了题目中设置的字符串 s1 和 s2,用字符串 s 存放输入的目标字符串,再用字符串 S 存放每次修改后的字符串。

我首先想到的是思路就是,把每次修改后的字符串记录下来,每次修改完用 strcmp 函数比较是否与目标字符串 s 相等,也就是 strcmp(S,s)==0 的情况。

如果可以转换成功的字符串这样做没什么问题,但是要考虑循环多少次,才能判断无论循环多少次,也无法结束循环。

第一种方法:我是用的枚举,列举几个字符串,一遍一遍转换,最后在转换 2*len 次后发现又回到了第一次转换成的字符串,这就说明如果循环重复 2*len 遍,还没有与目标字符串一致的话,就输出 -1。

第二种是用哈希,不用上面的举例,把每次翻转之后的对应的哈希值存入数组,如果哈希值没有重复的,说明字符串的翻转过程中没有出现重复的情况,当重复的出现时就结束循环,并且输出 -1。

对于每次字符串的翻转都要将字符串 s1 和 s2 更新,代码如下:

for(j=0;j

刚开始一直出错,原因是我用的字符串都是定义的全局变量,但是对于循环输入和输出,字符串 S 的前部分一直在更新,而后部分如果赋值了,之后再用 strcmp 函数比较字符串是否相等肯定会出错,所以这里的修改可以是:将字符串 S 定义为循环局部变量,最好是初始化,或者是定义了全局变量,每次循环时进行初始化。

代码如下:

#include
#include
int w;
char s1[105],s2[105],s[205];
int main()
{int len,n,i,j,k;scanf("%d",&n);for(i=0;i

还有一个题目的问题总是碰到,每次解决了还是会忘,今天上实验课的时候又错了。

删除输入的字符串中重复的元素。

对于顺序表来说,字符的插入和删除应该是要很熟练了。

删除时:

	//删除重复元素int k=0;for(i=1;i<=n-k;i++){if(a[i]==a[i-1]){for(j=i+1;j<=n;j++){a[j-1]=a[j];}k++;i--;}} 

最后这个 i-- 的作用很关键。

如果没有这个语句,那么对于三个及以上的重复部分来说就会出问题。

比如:下表为 i-1和下标为 i 的元素重复了,此时根据代码,会将下标为 i 至下标为 n 的元素全部向前移动,而现在在 i 位置的就是原来在 i+1 位置的元素,此时到下一层循环时,i++后,该元素换位置之后就不会进行比较操作了,就会忽略掉这个字符,所以出错。

相关内容

热门资讯

枚举 目录 第几个幸运数字 组合型枚举
你看! 那都市里的雾霾 雾霾...  我是一只麻雀,我在人类世界中穿梭。他们说人类的智慧是所有动物中最高的。高等动物就是人类对自己的称呼...
一条小河的哭泣,请大家帮帮它!...  我是一条碧绿、清澈的小河。  太阳公公给我披上五彩斑斓的花衣裳,把我打扮得格外美丽。夜晚,月亮婆婆...
有关于环保的一些诗歌 中学生环... 1、《环保》  立春刚过寸草绿,  傍晚时分北风急。  浮尘扬沙阵阵落,  环保确系大问题。  2、...
“地球只有一个”,让我们共同保... (一)小水n滴,一滴滴, 汇成江河长千里。 小米粒,一粒粒, 堆成粮堆高千米, 小水滴,小米粒, 积...
让我们生命的每一天,天天都是环...  每年6月5日是环境日,保护环境意识是现代人的重要标志。保护环境,人人有责,为了能让我们的环境优美,...
如何获取机器人方向新信息资讯-... 对于学生就业而言:机器人方向新信息资讯对学生就业的用途在于为学生提供了更多的就业机会和...
在centos上安装pycha... 1.下载pycharm安装包 1)切换到root用户,命令:...
节约资源,保护环境,做保护地球...   保护环境,从身边做起  人类自诞生起,一切衣食往行及生产,生活,无不依赖于我们所生存的这个星球,...
没有地球的健康就没有人类的健康...  环境保护(简称环保)是在个人、组织或政府层面,为大自然和人类福祉而保护自然环境的行为,指人类为解决...
环保小知识,你需要知道! 企业...  1、节约用水  随时关上水龙头,别让水白流;看见漏水的龙头一定要拧紧它。尽量使用二次水。例如,淘米...
保护水源就是保护生命 生命和水...  我国是世界上12个贫水国家之一,淡水资源还不到世界人均水量的 1/4。全国600多个城市半数以上缺...
【BMS】电池包低温加热技术 1、目的: 提高锂电池低温充放电性能。(如电动车在寒冷天气续航变短、启动...
GeoWave 以下部分内容是翻译的。英文太烂,应该是很不准确的。 一、什么是GeoWave GeoW...
保护水源,保护生命,保护地球 ...  我国是世界上12个贫水国家之一,淡水资源还不到世界人均水量的 1/4。全国600多个城市半数以上缺...
最新或2023(历届)学雷锋手... 【学雷锋手抄报内容:雷锋名言警句】  1) 我愿永远做一个螺丝钉。  2) 谁要是游戏人生,他就一事...
低碳生活,其实就是这么简单。 ... 这个月,我们学校开展了一个活动——绿色田园,节能环保小达人。其实我们家早就开展了一系列的环保行动。 ...
最新或2023(历届)小学生学... 雷锋(1940~1962)  中国人民解放军全心全意为人民服务的楷模,共产主义战士。湖南望城县人。1...
从小事做起,保护好赖以生存的地...  谁都知道,地球是我们的家园,与我们的生活息息相关。人类大量破坏环境,已经把我们美丽的地球毁坏的不像...
基础入门 HTTP数据包Pos... 文章目录数据-方法&头部&状态码请求requestResponse状态码案例-文件探针&登录爆破工具...