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 ;
    }
  • 相关阅读:
    78. Subsets
    93. Restore IP Addresses
    71. Simplify Path
    82. Remove Duplicates from Sorted List II
    95. Unique Binary Search Trees II
    96. Unique Binary Search Trees
    312. Burst Balloons
    程序员社交平台
    APP Store开发指南
    iOS框架搭建(MVC,自定义TabBar)--微博搭建为例
  • 原文地址:https://www.cnblogs.com/xiaolongchase/p/2173831.html
Copyright © 2011-2022 走看看