斯德哥尔摩火车上的题

文章介绍了一道源自新浪微博的趣味编程问题,涉及一个基于伪代码的字符串处理算法。该算法基于字符串中的数字和模运算,要求判断两个给定的字符串是否能通过此算法得到相同的输出。输入和输出格式被详细描述,并提供了示例。文章包含一个简单的C++实现,用于处理和比较这两个字符串的结果。
摘要由CSDN通过智能技术生成

上图是新浪微博上的一则趣闻,是瑞典斯德哥尔摩火车上的一道题,看上去是段伪代码:

s = ''
a = '1112031584'
for (i = 1; i < length(a); i++) {
  if (a[i] % 2 == a[i-1] % 2) {
    s += max(a[i], a[i-1])
  }
}
goto_url('www.multisoft.se/' + s)

其中字符串的 + 操作是连接两个字符串的意思。所以这道题其实是让大家访问网站 www.multisoft.se/112358注意:比赛中千万不要访问这个网址!!!)。

当然,能通过上述算法得到 112358 的原始字符串 a 是不唯一的。本题就请你判断,两个给定的原始字符串,能否通过上述算法得到相同的输出?

输入格式:

输入为两行仅由数字组成的非空字符串,长度均不超过 104,以回车结束。

输出格式:

对两个字符串分别采用上述斯德哥尔摩火车上的算法进行处理。如果两个结果是一样的,则在一行中输出那个结果;否则分别输出各自对应的处理结果,每个占一行。题目保证输出结果不为空。

输入样例 1:

1112031584
011102315849

输出样例 1:

112358

输入样例 2:

111203158412334
12341112031584

输出样例 2:

1123583
112358
#include<iostream>
class tring   //构建一个字符串的类,用于得到原始字符串
{
public:
    std::string s;
    tring(std::string);     //函数用于得到字符串,注意s的类型要是string
    ~tring(){}             //析构该函数
};
tring::tring(std::string String)
{
    std::string  result="";           //注意result的初始化和类型是string
    for (int i = 1; i < (int)String.size(); i++)
    {
        if (String[i] % 2 == String[i - 1] % 2)
        {
            result+= std::max(String[i], String[i - 1]);
        }
    }
    s = result;
}
void compare(tring s1,tring s2)     //比较两原函数
{
    if (s1.s ==s2.s)
        std::cout << s1.s;
    else
        std::cout << s1.s << std::endl << s2.s;
}
int main()
{
    std::string s1, s2;
    std::cin >> s1 >> s2;
    tring N1(s1);
    tring N2(s2);
    compare(s1, s2);

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值