高山 发表于 2022-10-2 19:22:07

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

本帖最后由 高山 于 2022-10-7 18:44 编辑

好久不见~
今天是每周一练系列第五期
由我和每周一练团队(@zhangjinxuan @元豪 @hveagle )发布static/image/hrline/1.gif

题目描述:

输入两个一样长的字符串s和t。
你每次可以选择s中的一个字符,然后把它换成另一个字符。
请问,最少操作多少次可以把s和t变得一模一样
样例输入:
cupofcoffee
cupofhottea样例输出:
4
正式代码:
**** Hidden Message *****
zhangjinxuan的解法:
**** Hidden Message *****
上一期:质数筛
下一期:BFS

zhangjinxuan 发表于 2022-10-2 21:29:40

就是有多少个字符不一样嘛

zhangjinxuan 发表于 2022-10-2 21:33:22

没看懂正解,这是我的答案:
#include <bits/stdc++.h>

using namespace std;

int main() {
        string s, t;
        cin >> s >> t;
        assert(s.size() == t.size());
        int l = 0, ans = 0;
        for (auto i : s)
                ans += i != t;
        printf("%d", ans);
}
       

zhangjinxuan 发表于 2022-10-2 21:36:35

没看懂正解,是不是写错了?

hveagle 发表于 2022-10-3 14:59:03

本帖最后由 hveagle 于 2022-10-27 19:07 编辑

Python版本
import sys
s = input('s:')
t = input('t:')
result = 0
index = 0
if len(s) != len(t):
    print('无法执行')
    sys.exit()
try:
    while 1:
      if s != t:
            u += 1
            index += 1
      else:
            index += 1
except IndexError:
    print(result)

元豪 发表于 2022-10-3 15:49:01

{:10_256:}

Andy2029 发表于 2022-10-3 16:22:04

ffff

hornwong 发表于 2022-10-3 23:05:11

{:5_108:}

高山 发表于 2022-10-4 10:01:43

zhangjinxuan 发表于 2022-10-2 21:36
没看懂正解,是不是写错了?

改改

zhangjinxuan 发表于 2022-10-7 14:22:18

在帖子末尾加上 上一篇 下一篇(之前是被提醒,现在是我提醒{:5_109:})

高山 发表于 2022-10-7 18:22:49

zhangjinxuan 发表于 2022-10-2 21:36
没看懂正解,是不是写错了?

传错了

高山 发表于 2022-10-7 20:10:41

zhangjinxuan 发表于 2022-10-7 14:22
在帖子末尾加上 上一篇 下一篇(之前是被提醒,现在是我提醒)

加了

临时号 发表于 2022-10-7 23:25:58

我一个C来凑热闹
#include <stdio.h>

int main()
{
        char s,t;
        int count=0,i;
        scanf("%s%s",s,t);
       
        for (i=0;s!='\0';i++) if (s!=t) count++;
        printf("%d\n",count);
        return 0;
}

临时号 发表于 2022-10-7 23:28:23

这个正解的思路也太巧妙了吧

howzyao 发表于 2022-10-8 18:50:39

这个必须要学习,谢谢.

howzyao 发表于 2022-10-8 19:00:30

看完了代码,发觉有不懂的:C#中的断言(Assert)
查了一下,发现此是一个神器.
冒昧地想了一下,发现断言的用法,最好是用在某个功能的函数起"转折"作用的代码段上,
既不会出现滥用的副作用,又提升了排查隐患的范围,今天至少学到了一个新东西,感谢楼主啊.

ExiaGN001 发表于 2022-10-14 22:15:53

支持

ExiaGN001 发表于 2022-10-14 22:17:10

zhangjinxuan 发表于 2022-10-2 21:33
没看懂正解,这是我的答案:

正解就是按位枚举,如果不同的话就意味着需要多操作一次,将ret++

asky533 发表于 2022-10-14 22:17:20

{:10_256:}

zhangjinxuan 发表于 2022-10-15 06:30:45

ExiaGN001 发表于 2022-10-14 22:17
正解就是按位枚举,如果不同的话就意味着需要多操作一次,将ret++

原本正解楼主复制错了,没看懂,现在改正了,可以看懂了
页: [1] 2
查看完整版本: 每周一练系列第五期 把字符变得一样(C++提升计划)(回复可见)