匹配: 檢查一個字符串是否包含另外一個字符串

源碼: simple.py

# -.- coding:utf-8 -.-
#
# 檢查一個字符是否包含另外一個字符.
#
# 相似功能, in 關(guān)鍵字, 舉例:
# if "a" in "abc":
#     return True
# else:
#     return False


from __future__ import print_function


def in_(letters, find):
    """
    :return: True or False
    """
    # 字符集的總長度
    letters_len = len(letters)

    # 匹配關(guān)鍵字的總長度
    find_len = len(find)

    # 利用分片, 從
    # 0: 0+find_len
    # 1: 1+find_len
    # 2: 2+find_len
    # ...
    # 以此類推去查找.
    for i in range(letters_len):
        print(i)
        if letters[i:i+find_len] == find:
            return True

    # 未命中則返回False
    return False


if __name__ == '__main__':
    print(in_("abcdefg", "fg"))

# 一共查找了7次
# output
0
1
2
3
4
5
6
False

?
?

源碼: optimize.py

# -.- coding:utf-8 -.-
#
# 檢查一個字符是否包含另外一個字符.
#
# 相似功能, in 關(guān)鍵字, 舉例:
# if "a" in "abc":
#     return True
# else:
#     return False


from __future__ import print_function


def in_(letters, find):
    letters_len = len(letters)
    find_len = len(find)
    max_index = letters_len - find_len

    for i in range(max_index + 1):
        print(i)
        if letters[i:i+find_len] == find:
            return True

    return False


if __name__ == '__main__':
    print(in_("abcdefg", "fg"))

# 一共查找了6次
# output
0
1
2
3
4
5
True

?
?

源碼: final.py

# -.- coding:utf-8 -.-
# 檢查一個字符是否包含另外一個字符.
from __future__ import print_function


# 不采用分片的寫法.
def has_substring(search, find):
    if not search:
        return bool(find)

    max_search_index = len(search) - len(find)

    for i in range(0, max_search_index+1):
        found = True

        for j in range(0, len(find)):
            if search[i+j] != find[j]:
                found = False
                break

        if found:
            return found

    return False


if __name__ == '__main__':
    print(has_substring("abcdefg", "gh"))

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末酵熙,一起剝皮案震驚了整個濱河市失息,隨后出現(xiàn)的幾起案子怀樟,更是在濱河造成了極大的恐慌慕爬,老刑警劉巖终娃,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肿男,死亡現(xiàn)場離奇詭異纲堵,居然都是意外死亡幸逆,警方通過查閱死者的電腦和手機棍辕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來还绘,“玉大人楚昭,你說我怎么就攤上這事〔仙” “怎么了哪替?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長菇怀。 經(jīng)常有香客問我凭舶,道長,這世上最難降的妖魔是什么爱沟? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任帅霜,我火速辦了婚禮,結(jié)果婚禮上呼伸,老公的妹妹穿的比我還像新娘身冀。我一直安慰自己,他們只是感情好括享,可當我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布搂根。 她就那樣靜靜地躺著,像睡著了一般铃辖。 火紅的嫁衣襯著肌膚如雪剩愧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天娇斩,我揣著相機與錄音仁卷,去河邊找鬼穴翩。 笑死,一個胖子當著我的面吹牛锦积,可吹牛的內(nèi)容都是我干的芒帕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼丰介,長吁一口氣:“原來是場噩夢啊……” “哼背蟆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起基矮,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤淆储,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后家浇,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體本砰,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年钢悲,在試婚紗的時候發(fā)現(xiàn)自己被綠了点额。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡莺琳,死狀恐怖还棱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情惭等,我是刑警寧澤珍手,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站辞做,受9級特大地震影響琳要,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜秤茅,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一稚补、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧框喳,春花似錦课幕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至放仗,卻和暖如春润绎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工凡橱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人亭姥。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓稼钩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親达罗。 傳聞我的和親對象是個殘疾皇子坝撑,可洞房花燭夜當晚...
    茶點故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,079評論 25 707
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料粮揉? 從這篇文章中你...
    hw1212閱讀 12,714評論 2 59
  • 或許巡李,你的心里面有黑夜的故事 但是,夢里真心沒有你的存在感 于是扶认,我笑了笑一切都是那么的不盡人意 ...
    楓落殘雪閱讀 255評論 0 1
  • 許小小將鑰匙插進門里轉(zhuǎn)了兩圈侨拦,進了門將書包往沙發(fā)上一扔,索性客廳的燈也懶得開辐宾,踩著拖鞋就回自己房間了狱从。要說新學期的...
    小樓今夜可東風閱讀 474評論 0 0