寫乙個函式找到給定字串的位置

2021-09-22 19:20:53 字數 731 閱讀 5307

給你乙個排好序的並且穿插有空字串的字串陣列,寫乙個函式找到給定字串的位置。

例子:在字串陣列 [「at」, 「」, 「」, 「」, 「ball」, 「」, 「」, 「car」, 「」,「」, 「dad」, 「」, 「」] 中找到」ball」,返回下標4.

例子:在字串陣列 [「at」, 「」, 「」, 「」, 「」, 「ball」, 「car」, 「」, 「」, 「dad」, 「」, 「」] 中找到」ballcar」,查詢失敗,返回-1.

字串陣列已經是有序的了,所以,還是可以利用二分查詢來找到指定的字串。 當然了,由於陣列中有空字串,因此還要加些額外的處理,否則無法對比大小。 我們可以這樣來處理,如果要對比的那個元素為空字串,就一直向右移動, 直到字串不為空或是位置已經超出了high下標。如果位置已經超出high下標, 就在[low, mid-1]這一段查詢;如果沒有超出high下標,那就和要查詢的x進行對比。 相等時返回下標,不等時再根據比較出的大小決定到哪一半去查詢。

**如下:

#include using

namespace

std;

int search(string s, int low, int high, string

x) }

return -1;}

intmain();

cout

<0, 12, "

ball

")

}

給定乙個字串,找到包含該字串所有字元的最短子串

這題是豌豆莢二面的乙個演算法題,和leetcode的某些題目類似。其思路是這樣的 首先遍歷一次字串,求出字串不同字元的數目 為每乙個字元儲存乙個列表,記錄該字元在字串 現的索引 記錄待求字串的首字母的索引start 初始值為0 結束索引end 初始值為length 1 記錄可能的待求字串的首字母的索...

十五 給定乙個函式,連線函式內的字串

function exists 判斷某個函式是否被定義過 func get arg n 獲得乙個函式的第n個實參值 n從0開始 func get args 獲得乙個函式的所有實參,結果是乙個陣列 func num args 獲得乙個函式的所有實參的個數 寫乙個函式,該函式可以將給定的任意個數的引數以...

重複輸出乙個給定的字串

描述 重複輸出乙個給定的字串 str第乙個引數 n 次 num第二個引數 如果第二個引數num不是正數的時候,返回空字串。思路 我將介紹三種方法 使用 while 迴圈 使用遞迴 使用es6 repeat 方法1 通過 while 迴圈重複輸出乙個字串 function repeatstringnu...