现在的位置: 首页 > 综合 > 正文

字符串包含问题

2018年02月20日 ⁄ 综合 ⁄ 共 701字 ⁄ 字号 评论关闭

给定a,b两个长度不一的字符串,a>b,判断b中的每个字符是否都在a中。

bool sc(string &a , string &b)
{
	  int have[26] = {0};
	  for ( int i = 0 ; i < a.size() ;++i)
	             have[a[i]-'A'] = 1 ;
	  for ( int i = 0 ; i < b.size() ;++i)
	             if(have[b[i]-'A'] == 0) 
	              return false ;
	  return true ;// a中可出现重复字符
}
bool sc ( string &a , string &b)
{
	  bool f1[26] = {false};
	  bool f2[26] = {false};
	  bool f = false ;
	  for ( int i = 0 ; i < a.size();++i)
	           f1[a[i]-'A'] = true ;
	  for ( int i = 0 ; i < b.size();++i)
	           f2[b[i]-'A'] = true ;
	  for ( int i = 0 ; i <26 ; ++i)
	    	   if(f2[i])
	    	   {
	    	   	  if (f1[i] == f2[i])
	    	   	   f = true ;
	    	   	   else
	    	   	   {
	    	   	   	  f =  false ;
	    	   	   	  break ;
	    	   	   }
	    	   }
	    	  
	    
	    return f ;///a中可出现重复字符
}

bool sc(string &a ,string &b) 
{
	int have[26] = {0} ;
	int count = 0 ;
	for ( int i = 0 ; i < b.size(); ++i)
	         if(have[b[i]-'A'] == 0)
	         {
			     have[b[i]-'A'] = 1 ;
			     ++count ;
	         }
	for ( int i = 0 ; i < a.size(); ++i)
	        if(have[a[i]-'A'] == 1)
	        {
	        	--count ;
				have[b[i]-'A'] == 0 ;
	        	
	        }
	return count == 0 ;//对于a串来说 ,a中不能出现重复的字符。
}

抱歉!评论已关闭.