zoukankan      html  css  js  c++  java
  • poj 3302 Subsequence

    题目链接:http://poj.org/problem?id=3302

            题意:  给定两个字符串,求第二个字符串是否为第一个字符串正向或反向的子串。

            直接按s2中的字符在s1中搜索,有两个地方要剪枝,一是当s2的长度大于s1时,还有当s1剩余字符无s2的当前字符时。

    #include<cstdio>
    #include
    <fstream>
    #include
    <iostream>
    #include
    <cstring>
    using namespace std ;
    int n, i, j ;
    char s1[101], s2[101] ;
    bool is_sub(){
        
    int s1_len = strlen(s1) ;
        
    int s2_len = strlen(s2) ;
        
    int sn=0, t=0 ;
        
    int find=0 ;
        
    if(s2_len>s1_len)   return false ;  //剪枝
        
    for(i=0; i<s2_len; i++){            //正向
            find=0 ;
            
    for(j=t; j<s1_len; j++){
                
    if(s1[j]==s2[i]){
                    sn 
    ++ ;
                    t 
    = j+1 ;
                    find 
    = 1 ;
                    
    break ;
                }
            }
            
    if(sn==s2_len)  return true ;
            
    else if(find==0)    break ;     //剪枝
        }
        sn
    =0 ;
        t
    =0 ;
        
    for(i=s2_len-1; i>=0; i--){         //反向
            find=0 ;
            
    for(j=t; j<s1_len; j++){
                
    if(s1[j]==s2[i]){
                    sn 
    ++ ;
                    t 
    = j+1 ;
                    find 
    = 1 ;
                    
    break ;
                }
            }
            
    if(sn==s2_len)  return true ;
            
    else if(find==0)    break ;
        }
        
    return false ;
    }
    int main(){
        fstream cin(
    "input.in") ;
        cin 
    >> n ;
        
    while(n--){
            cin 
    >> s1 >> s2 ;
            
    if(is_sub())
                cout 
    << "YES" << endl ;
            
    else
                cout 
    << "NO" << endl ;
        }
        
    return 0 ;
    }
  • 相关阅读:
    金融系列4《PUTKEY指令》
    数据分析≠Hadoop+NoSQL,不妨先看完善现有技术的10条捷径(分享)
    ASP.NET对HTML元素进行权限控制(三)
    ASP.NET对HTML元素进行权限控制(二)
    ASP.NET对HTML元素进行权限控制(一)
    作弊控制——心态
    SQL多表连接
    ASP.NET Repeater嵌套Repeater实现菜单加载
    ASP.NET从数据库中取出数据,有数据的复选框为选中
    ASP.NET——拒绝访问。 (异常来自HRESULT:0x80070005 (E_ACCESSDENIED))
  • 原文地址:https://www.cnblogs.com/xiaolongchase/p/2173831.html
Copyright © 2011-2022 走看看