鱼C论坛

 找回密码
 立即注册
查看: 4465|回复: 22

[技术交流] 每周一练系列第五期 把字符变得一样(C++提升计划)(回复可见)

[复制链接]
发表于 2022-10-2 19:22:07 | 显示全部楼层 |阅读模式
本帖最后由 高山 于 2022-10-7 18:44 编辑

好久不见~

今天是每周一练系列第五期

由我和每周一练团队@zhangjinxuan @元豪 @hveagle )发布

                               
登录/注册后可看大图


题目描述:

输入两个一样长的字符串s和t。
你每次可以选择s中的一个字符,然后把它换成另一个字符。
请问,最少操作多少次可以把s和t变得一模一样
样例输入:
  1. cupofcoffee
  2. cupofhottea
复制代码
样例输出:
  1. 4
复制代码

正式代码:
游客,如果您要查看本帖隐藏内容请回复

zhangjinxuan的解法:
游客,如果您要查看本帖隐藏内容请回复

上一期:质数筛
下一期:BFS
正方观点 (9)

支持!

反方观点 (0)

不咋样

辩手:5 ( 加入 )
 
辩手:0 ( 加入 )

    评分

    参与人数 2鱼币 +7 收起 理由
    zhangjinxuan + 2
    tommyyu + 5

    查看全部评分

    本帖被以下淘专辑推荐:

    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复

    使用道具 举报

    发表于 2022-10-2 21:29:40 | 显示全部楼层
    就是有多少个字符不一样嘛
    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复

    使用道具 举报

    发表于 2022-10-2 21:33:22 | 显示全部楼层
    没看懂正解,这是我的答案:
    1. #include <bits/stdc++.h>

    2. using namespace std;

    3. int main() {
    4.         string s, t;
    5.         cin >> s >> t;
    6.         assert(s.size() == t.size());
    7.         int l = 0, ans = 0;
    8.         for (auto i : s)
    9.                 ans += i != t[l++];
    10.         printf("%d", ans);
    11. }
    12.        
    复制代码

    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复

    使用道具 举报

    发表于 2022-10-2 21:36:35 | 显示全部楼层
    没看懂正解,是不是写错了?
    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复

    使用道具 举报

    发表于 2022-10-3 14:59:03 | 显示全部楼层
    本帖最后由 hveagle 于 2022-10-27 19:07 编辑

    Python版本
    1. import sys
    2. s = input('s:')
    3. t = input('t:')
    4. result = 0
    5. index = 0
    6. if len(s) != len(t):
    7.     print('无法执行')
    8.     sys.exit()
    9. try:
    10.     while 1:
    11.         if s[index] != t[index]:
    12.             u += 1
    13.             index += 1
    14.         else:
    15.             index += 1
    16. except IndexError:
    17.     print(result)
    复制代码
    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复

    使用道具 举报

    发表于 2022-10-3 15:49:01 | 显示全部楼层
    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复

    使用道具 举报

    发表于 2022-10-3 16:22:04 | 显示全部楼层
    ffff
    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复

    使用道具 举报

    发表于 2022-10-3 23:05:11 | 显示全部楼层
    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复

    使用道具 举报

     楼主| 发表于 2022-10-4 10:01:43 | 显示全部楼层
    zhangjinxuan 发表于 2022-10-2 21:36
    没看懂正解,是不是写错了?

    改改

    评分

    参与人数 1荣誉 +1 收起 理由
    zhangjinxuan + 1

    查看全部评分

    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复

    使用道具 举报

    发表于 2022-10-7 14:22:18 | 显示全部楼层
    在帖子末尾加上 上一篇 下一篇(之前是被提醒,现在是我提醒
    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复

    使用道具 举报

     楼主| 发表于 2022-10-7 18:22:49 | 显示全部楼层
    zhangjinxuan 发表于 2022-10-2 21:36
    没看懂正解,是不是写错了?

    传错了

    评分

    参与人数 1荣誉 +2 鱼币 +1 收起 理由
    zhangjinxuan + 2 + 1

    查看全部评分

    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复

    使用道具 举报

     楼主| 发表于 2022-10-7 20:10:41 | 显示全部楼层
    zhangjinxuan 发表于 2022-10-7 14:22
    在帖子末尾加上 上一篇 下一篇(之前是被提醒,现在是我提醒)

    加了

    评分

    参与人数 1荣誉 +2 鱼币 +2 收起 理由
    zhangjinxuan + 2 + 2

    查看全部评分

    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复

    使用道具 举报

    发表于 2022-10-7 23:25:58 | 显示全部楼层
    我一个C来凑热闹
    1. #include <stdio.h>

    2. int main()
    3. {
    4.         char s[1024],t[1024];
    5.         int count=0,i;
    6.         scanf("%s%s",s,t);
    7.        
    8.         for (i=0;s[i]!='\0';i++) if (s[i]!=t[i]) count++;
    9.         printf("%d\n",count);
    10.         return 0;
    11. }
    复制代码
    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复

    使用道具 举报

    发表于 2022-10-7 23:28:23 | 显示全部楼层
    这个正解的思路也太巧妙了吧
    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复

    使用道具 举报

    发表于 2022-10-8 18:50:39 | 显示全部楼层
    这个必须要学习,谢谢.
    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复

    使用道具 举报

    发表于 2022-10-8 19:00:30 | 显示全部楼层
    看完了代码,发觉有不懂的:C#中的断言(Assert)
    查了一下,发现此是一个神器.
    冒昧地想了一下,发现断言的用法,最好是用在某个功能的函数起"转折"作用的代码段上,
    既不会出现滥用的副作用,又提升了排查隐患的范围,今天至少学到了一个新东西,感谢楼主啊.
    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复

    使用道具 举报

    发表于 2022-10-14 22:15:53 | 显示全部楼层
    支持
    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复

    使用道具 举报

    发表于 2022-10-14 22:17:10 | 显示全部楼层
    zhangjinxuan 发表于 2022-10-2 21:33
    没看懂正解,这是我的答案:

    正解就是按位枚举,如果不同的话就意味着需要多操作一次,将ret++
    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复

    使用道具 举报

    发表于 2022-10-14 22:17:20 | 显示全部楼层
    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复

    使用道具 举报

    发表于 2022-10-15 06:30:45 | 显示全部楼层
    ExiaGN001 发表于 2022-10-14 22:17
    正解就是按位枚举,如果不同的话就意味着需要多操作一次,将ret++

    原本正解楼主复制错了,没看懂,现在改正了,可以看懂了
    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

    GMT+8, 2024-4-27 14:00

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表