1. 程式人生 > >演算法4— 判斷一個字串裡是否包含另一個字串所有的字元

演算法4— 判斷一個字串裡是否包含另一個字串所有的字元

問題:

有兩個字串,每個字串的字元從A-Z中選取,比如: B = “ABBC”, A = “ACBBD”。那麼A包含所有B中出現的字元。如果A = “ACBD” 或者  A = “ABBD”,則我們認為A不包含B中所有的字元。

分析:

對於“是否包含”的問題,基本上處理的方法都會與hashtable有關。這題也不例外。思路是把所有A中出現的字元放在一個長度為26的字元陣列array[26]裡,比如,"ABBC" 就是array[26] = {1, 2, 1, 0, ... , 0}, 然後對於每個在B字串中出現的字元,在array[26]裡做相應的減法。只要遇到array[i] < 0, 返回 false。

程式碼如下:

  1. publicboolean contains(String A, String B) {  
  2.         int[] array = newint[26];  
  3.         //store the characters in A to array
  4.         for (int i = 0; i < A.length(); i++) {  
  5.             array[A.charAt(i) - 'A'] += 1;  
  6.         }  
  7.         //check whether all the characters in B exist in A
  8.         for (int j = 0; j < B.length(); j++) {  
  9.             array[B.charAt(j) - 'A'] -= 1;  
  10.             if (array[B.charAt(j) - 'A'] < 0returnfalse;  
  11.         }  
  12.         returntrue;  
  13.     }  

相關推薦

演算法4判斷一個字串是否包含一個字串所有字元

問題: 有兩個字串,每個字串的字元從A-Z中選取,比如: B = “ABBC”, A = “ACBBD”。那麼A包含所有B中出現的字元。如果A = “ACBD” 或者  A = “ABBD”,則我們認為A不包含B中所有的字元。 分析: 對於“是否包含”的問題,基本上

php 判斷字串中是否包含一個字串

<?php if(strpos('www.baidu.com','www') !==false){  echo '包含該字串'; }else{        echo '不包含該字串'; }

[資料庫][SQLServer]判斷一個字串中是否包含一個字串

函式 CHARINDEX函式返回字元或者字串在另一個字串中的起始位置 CHARINDEX ( expression1 , expression2 [ , start_location ] ) Expression1是要到expression2中尋找的字元中,

判斷一個字串中是否包含一個字串

問題:如何判斷一個字串兒是否包含另一個字串兒?   其實,字串兒String裡面本身就包含一個contains()方法,它可以在一定程度上判斷一個字串兒裡面是否包含另一個字串兒。但是,它比較傻,所能做的工作有限,比如說: "Hello, July".contains("July") /

js判斷一個dom中是否包含一個dom的方法

首先,比較原始(蠢)的方法 function isChildOf(child, parent) { if(child && parent) { let parentNode = child.parentNode; w

c# 判斷一個string[]是否全包含一個string[]

// list = normalList.Except(repairList).ToList(); //差集 // list = normalList.Union(repairList).ToList(); //並集

Python小知識點:判斷一個list中是否包含一個list的全部元素

你可以用for in迴圈+in來判斷,但有個更簡單更簡潔的方法,就是把list轉換成集合。 也就是說將是否包含變成是否是其真子集 以下是一個簡單的例子 >>> a = [1,2,3,4,5,6] >>> b = [2,4,6] >

sql 一個字段是否包含一個字段

sql 一個字段是否包含另一個字段/* Navicat MySQL Data Transfer Source Server : test Source Server Version : 50528 Source Host : localhost:3306 Source D

一個JSP頁面中包含一個JSP頁面的三種方式

(1)include指令           include指令告訴容器:複製被包含檔案彙總的所有內容,再把它貼上到這個檔案中。 <%@ include file="Header.jsp"%> (2)include標準動作 <jsp:includ

一個JSP頁面中包含一個JSP頁面的三種方式。

(1)include指令          include指令告訴容器:複製被包含檔案彙總的所有內容,再把它貼上到這個檔案中。 <%@ include file="Header.jsp"%> (2)include標準動作 <jsp:include

用oracle查詢一個表中的一個欄位內容包含一個表中的某個欄位的值

select *   from table1 where exists (select 1           from table2          where table1.columA like '%' || table2.columB || '%')

.net 一個集合list 不包含一個集合listb中的資料

var query = lista.Where(p=>!listb.Select(g=>g.id).Contain(p.id)) string str="abc,bbb,ccc";  List<string> filter_node_lst = s

freemarker中判斷一個字串是否包含一個字串(select多選框資料回顯)

開發中用到了select多選框,所以資料回顯就要換一種方式解決。多選框返回的資料是一個用逗號分隔的字串,比如“a,b,c”,回顯的時候用contains判斷從而決定是否對每個option進行checked。 <#if "a,b,c,"?contains("a")>

c語言中判斷一個字串是否包含一個字串

1. 使用庫函式 string.h  strstr函式  函式名: strstr  功 能: 在串中查詢指定字串的第一次出現  用 法: char *strstr(char *str1, char

oracle判斷一個字串中是否包含另外一個字串

select * from a where instr(a,b)>0;這個只能實現B欄位是A欄位中的某一部分的時候。 如果想要不論順序或者不相鄰的字元時,定義函式可以實現  create or replace function checks(v_a varchar2,v_b varchar)  retu

js--判斷--判斷一個字串是否包含一個字串

方法 function isCunzai(){    var str1 = "BABEBIBOBUBABEBIBOBU"     var s = str1.indexOf("iBOB");     alert(s); } indexOf()方法: 區分大小寫, 不包含,返

lua判斷字串包含一個字串

--string.find("元字串","模式字串") 如下: print(string.find("CCBWebView/*/iPhone OS/*/10.3.2/*/4.04/*/750*129

【程式碼向】字串KMS演算法判斷某一字串是否包含字串

public static class KMS { #region Defines public const int StringStartIndex = 0; #endregion priva

java 判斷一個字串是否包含一個字串

方法一: String str = "1234567"; if(str.indexOf("23") != -1) { System.out.println("包含該字串"

php 判斷字串是否包含一個字串

1.strpos()<?php   $attach='omr/online/php/img/news/';   //注意要用 !==   //查詢的字串在第一個位置返回是0   if (strpos($attach, 'omr/online') !== false) {