uva 10340 - All in All

简介: 点击打开链接uva 10340 题目意思:     给定两个字符串判断第一个字符串是否是第二个字符串的字串 解题思路:     1:思路:直接处理两个字符串,枚举字符串1是否都再字符串2里面                     ...

点击打开链接uva 10340


题目意思:     给定两个字符串判断第一个字符串是否是第二个字符串的字串


解题思路:     1:思路:直接处理两个字符串,枚举字符串1是否都再字符串2里面
                      2注意事项:字符串长度很大, 注意开100010左右数组


代码:

#include <algorithm>
#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include <cstdio>
#include <stack>
#include <queue>
#include <cmath>
#include <set>
using namespace std;
#define MAXN 100010

string s , t;
int vis[MAXN];

int solve(){
    int l1 = s.size();
    int l2 = t.size();
    if(l1 > l2) return 0;
    memset(vis , 0 , sizeof(vis));
    int pos = 0 ; int flag;
    for(int i = 0 ; i < l1 ; i++){
        flag = 0;
        for(int j = pos ; j < l2 ; j++){
            if(s[i] == t[j] && !vis[j]){
                vis[j] = 1 ; pos = j+1;
                flag = 1; break ; 
            }
        }
        if(!flag) return 0;
    }
    return 1;
}

int main(){
    //freopen("input.txt" , "r" , stdin);
    int flag;
    while(cin>>s>>t){
        flag = solve();
        if(flag) printf("Yes\n");
        else printf("No\n");
    }
    return 0;
}







目录
相关文章
uva10038 Jolly Jumpers
uva10038 Jolly Jumpers
37 0
概率dp - UVA 11021 Tribles
Tribles  Problem's Link:  http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=33059   Mean:  有k个细菌,每个细菌只能存活一天,在死去之前可能会分裂出0,1,2....n-1个细菌,对应的概率为p0,p1,p2....pn-1。
827 0
|
存储 固态存储
uva 11806 - Cheerleaders
点击打开链接 题意:在一个n行m列的矩形里面放k个相同的石子,要求第一行,最后一行,第一列,最后一列都要有石子。问有几种方法? 思路: 1 如果题目没有要求“第一行,最后一行,第一列,最后一列都要有石子”,那么答案就是C[n*m][k],我们用C[i][j]表示i个里面选择j个的组合数。
819 0
uva 10273 Eat or Not to Eat?
点击打开链接uva 10273 思路: 暴力求解 分析: 1 题目要求没有吃掉的奶牛的个数已经最后一次吃掉奶牛的天数 2 没有其它的方法只能暴力,对于n头牛的n个周期求最小公倍数,然后在2个公倍数之内暴力求解 代码: #inclu...
815 0
uva 1203 Argus
点击打开链接uva 1203 思路: 优先队列 分析: 1 题目要求前k个事件的编号,我们利用优先队列来维护即可 2 优先队列保存的是一个struct,因此我们需要重载 s.
1296 0
uva 10054 - The Necklace
点击打开链接uva 10054 思路: 欧拉回路 分析: 1 对于一个无向图来说如果这个图是一个欧拉图,那么必须满足该图是连通的并且每个点的度数都是偶数 2 题目给定n条边的无向图问我们是否是一个欧拉图,是的话输出欧拉图的一条路径 3 ...
838 0
|
人工智能
uva 11300 - Spreading the Wealth
点击打开链接uva 11300 思路:数学分析+贪心 分析: 1 首先最终每个人的金币数量可以计算出来,它等于金币总数除以人数n。接下来我们用m来表示每人的最终的金币数 2 现在假设编号为i的人初始化为Ai枚金币,Xi表示第i个人给第i-1个人Xi枚金币,对于第一个人来说他是给第n个人。
863 0