查詢兄弟單詞(牛客)

2021-10-05 06:43:20 字數 1682 閱讀 1234

題目描述:

兄弟單詞:給定乙個單詞x,如果通過任意交換單詞中字母的位置得到的新的單詞y,那麼稱x和y是兄弟單詞。注意:bca和abc是兄弟單詞,abc和abc是相同單詞,不是兄弟單詞

這個題的出題人真是讓人呵呵了

輸入描述:

先輸入字典中單詞的個數n,再輸入n個單詞作為字典單詞。 

再輸入乙個單詞,查詢其在字典中兄弟單詞的個數m 

再輸入數字k

3 abc bca cab abc 1
輸出描述:

根據輸入,輸出查詢到的兄弟單詞的個數m 

然後輸出查詢到的兄弟單詞的第k個單詞。

注意:所有輸入的單詞,必須按照字典排序。且當k>m時候,不輸出兄弟單詞。輸出要用回車間隔開

2

bca

做題思路:

唯一讓人提起興趣的也就是兄弟單詞的判定了。首先判斷是不是相同單詞,然後對每個單詞內部進行類似於字典排序,那麼acbd和adbc都會轉變為abcd,也就是說對單詞內部進行排序後判斷是否相等即可。

注意:

對vector進行sort排序,那麼vector內部必須有值。例如:

vectora(100); //內部有一百個值

a.clear(); //內部有0個值

cin>>a[0]>>a[1]; //雖然可以呼叫兩個值,但是a.size()是0

a.push_back(0); //因為是clear後第一次push_back,所以這個值是放在了a[0]當中

sort(a.begin(),a.end()); //也是要求裡面有值,這個值必須是push_back進去的

也就是說cin的資料可以通過下標呼叫,但是不被vector的函式承認

ac**:

#include#include#include#includeusing namespace std;

bool isbrother(string source,string word); //判斷是否是兄弟單詞

int main()

cin>>source>>k;

sort(word.begin(),word.end());//天坑,想使用sort對vector排序,那麼vector內部的資料必須是push_back進去的

for(int i=0; i}

} if( num!=0 )

if( k<=total ) }

return 0;

} bool isbrother(string source,string word)

sort(source.begin(),source.end());

sort(word.begin(),word.end());

if( source==word )else

}

查詢兄弟單詞(來自牛客網)

以上是來自牛客網的一道題的描述 看題意可能會有點難懂,在這裡我大致疏通一哈題意 先輸入字典中單詞的個數n,再輸入n個單詞作為字典單詞。再輸入乙個單詞s1,查詢其在字典中兄弟單詞的個數m 再輸入數字k 根據輸入,輸出查詢到的兄弟單詞的個數m 然後輸出查詢到的兄弟單詞的第k個單詞。題目簡單,就不描述思路...

trie 牛客 單詞查詢樹

題目描述 在進行文法分析的時候,通常需要檢測乙個單詞是否在我們的單詞列表裡。為了提高查詢和定位的速度,通常都要畫出與單詞列表所對應的單詞查詢樹,其特點如下 l 根節點不包含字母,除根節點外每乙個節點都僅包含乙個大寫英文本母 l 從根節點到某一節點,路徑上經過的字母依次連起來所構成的字母序列,稱為該節...

27 查詢兄弟單詞

輸入描述 先輸入字典中單詞的個數,再輸入n個單詞作為字典單詞。輸入乙個單詞,查詢其在字典中兄弟單詞的個數 再輸入數字n 輸出描述 根據輸入,輸出查詢到的兄弟單詞的個數 思路 將所有單詞加入wordlist,然後遍歷查詢 while true try string input strip split ...