• Kattis


    这里写图片描述

    分析

    给出两个串 从末尾开始对齐 每位对齐后,每一位 遍历

    如果 第一串 的那位 < 第二串 的 那么 第一串的那位 就删去
    如果 等于 两位 都保留
    如果 大于 那么 保留 第二串的 那位

    如果 最后 删完了 那一串 就输出 YODA

    AC代码

    #include <cstdio>
    #include <cstring>
    #include <ctype.h>
    #include <cstdlib>
    #include <climits>
    #include <iostream>
    #include <algorithm>
    #include <cmath>
    #include <deque>
    #include <vector>
    #include <queue>
    #include <string>
    #include <map>
    #include <stack>
    #include <set>
    #include <numeric>
    #include <sstream>
    #include <iomanip>
    #include <limits>
    
    using namespace std;
    typedef long long LL;
    
    const double PI  = 3.14159265358979323846264338327;
    const double E   = 2.718281828459;
    const double eps = 1e-6;
    
    const int INF = 0x3f3f3f3f;
    const int maxn = 1e9 + 5;
    const int MOD  = 1e9 + 7;
    
    int main()
    {
        string s1, s2;
        string c1 = "", c2 = "";
        cin >> s1 >> s2;
        int len1 = s1.size(), len2 = s2.size();
        int i, j;
        for (i = len1 - 1, j = len2 - 1; i >= 0 && j >= 0; i--, j--)
        {
            if (s1[i] < s2[j])
                c2 += s2[j];
            else if (s1[i] == s2[j])
            {
                c1 += s1[i];
                c2 += s2[j];        
            }   
            else
                c1 += s1[i];
        }
        if (i >= 0)
        {
            for ( ; i >= 0; i--)
                c1 += s1[i];
        }
        if (j >= 0)
        {
            for ( ; j >= 0; j--)
                c2 += s2[j];
        }
        if (c1.size())
        {
            for (i = c1.size() - 1; i >= 0; i--)
            {
                if (c1[i] != '0' || (c1[i] == '0' && i == 0))
                {
                    cout << c1[i];
                    break;      
                }       
            }       
            for (i-- ; i >= 0; i--)
                cout << c1[i];
        }   
        else 
            cout << "YODA";
        printf("
    ");
        if (c2.size())
        {
            for (i = c2.size() - 1; i >= 0; i--)
            {
                if (c2[i] != '0' || (c2[i] == '0' && i == 0))
                {
                    cout << c2[i];
                    break;
                }
            }
            for (i-- ; i >= 0; i--)
                cout << c2[i];
        }
        else 
            cout << "YODA";
        printf("
    ");
    } 
    
  • 相关阅读:
    算法训练 素因子去重
    vs2013配置opencv2.4.9
    vs2013配置opencv2.4.9
    运用map并于执行期指定排序准则
    运用map并于执行期指定排序准则
    vs2013错误解决方法
    vs2013错误解决方法
    win8.1系统vs2013中boost 1.55.0的安装
    win8.1系统vs2013中boost 1.55.0的安装
    Vector的小知识点
  • 原文地址:https://www.cnblogs.com/Dup4/p/9433257.html
Copyright © 2020-2023  润新知