牛牛的密碼

2021-10-10 03:07:54 字數 2226 閱讀 2610

題目描述

輸入描述:

輸出描述:

注牛牛在註冊不同的**時,總是會使用不同的密碼來保證他的賬號安全。

為了保證他的密碼強度,牛牛使用他的「字串篩選器」來測試密碼的強度。

具體來說,他先將輸入的字串篩選分成四部分。

第一部分僅由小寫英文本母組成

第二部分僅由大寫英文本母組成

第三部分僅由0到9的數字組成

第四部分由其餘特殊字元組成

這四部分要保留它們在原字串中的相對順序。

比如將"1q2w3e4r5「這個字串進行篩選後

四部分分別為:「qw」、「er」、「123456」、」{}"。

然後只要某一部分不為空,牛牛就認為他的密碼等級高1級。

密碼等級最低為1級,最高4級。

例如"asda@123"的密碼等級為4,"20020101"的密碼等級為1。

請幫助牛牛判斷他註冊賬號時的密碼等級,以及該密碼做字串篩選後的結果。

僅一行乙個字串s,表示牛牛的密碼。

首先輸出一行"password level:x",x表示牛牛的密碼等級,最低為1級,最高4級。

接下來輸出4行,表示四部分的篩選結果,輸出時要注意保留它們在原字串中的相對順序,如果某一部分為空串,則改為在該行輸出"(null)"。

示例1輸入

123456
輸出

password level:

1(null)

(null)

123456

(null)

示例2

輸入

pass_word
輸出

password level:

3assord

pw(null)

對於20%20%的測試資料,保證僅有小寫英文本母組成,且1≤∣s∣≤100

對於40%40%的測試資料,保證僅有大小寫英文本母組成,且1≤∣s∣≤100

對於100%的測試資料,保證字串是不含空格、回車、或者其他不可見字元的非空字串,且保證字串長度1≤∣s∣≤10000

將密碼讀入後,列舉密碼每一位並把每一位

按照小寫英文本母,大寫英文本母,數字,其餘特殊字元分類,

並將這為字元裝進分別表示這四種型別的陣列裡

if

(s[i]

>=

'a'&&s[i]

<=

'z')

sa[la++

]=s[i]

;else

以上**則將四種型別字元分類完畢!

然後可以用:

bool a,b,c,d;
來判定這四種型別是否出現過,

出現過則ans

++

;ans++;

ans++;

否則這種沒出現過的型別的陣列直接等於「(n

ull)

」「(null)」

「(null

)」

char k[10]

="(null)"

;for

(int j=

0;j<=

5;j++

) sa[j]

=k[j]

;

#include

#include

using

namespace std;

char s[

1001

],sa[

1001

],sa[

1001

],s1[

1001

],ss[

1001

],k[10]

="(null)"

;long

long i,ans,la,lb,lc,ld;

bool a,b,c,d;

intmain()

else

else

else}}

}if(a) ans++

;else}if

(b) ans++

;else}if

(c) ans++

;else}if

(d) ans++

;else

} cout<<

"password level:"

<}

牛客 2020 10 17 牛牛的密碼

牛牛在註冊不同的 時,總是會使用不同的密碼來保證他的賬號安全。為了保證他的密碼強度,牛牛使用他的 字串篩選器 來測試密碼的強度。具體來說,他先將輸入的字串篩選分成四部分。第一部分僅由小寫英文本母組成 第二部分僅由大寫英文本母組成 第三部分僅由0到9的數字組成 第四部分由其餘特殊字元組成 這四部分要保...

牛牛的木板 牛牛的字元反轉

原題鏈結 題意 一段長n的序列,由0 1組成。可把m個0改1,求序列中最大連續1的個數。思路 尺取法 雙指標法 設定一對指標l,r。最開始都指向第乙個元素。l,r是區間左右端點,r指標先不斷往右遍歷,當區間內0的個數超過m時,l指標向右遍歷,要跳過乙個0,維持乙個區間內改了m個0的狀態 其間不斷用區...

迷路的牛牛

牛牛去犇犇老師家補課,出門的時候面向北方,但是現在他迷路了。雖然他手裡有一張地圖,但是他需要知道自己面向哪個方向,請你幫幫他。輸入描述 每個輸入包含乙個測試用例。每個測試用例的第一行包含乙個正整數,表示轉方向的次數n n 1000 接下來的一行包含乙個長度為n的字串,由l和r組成,l表示向左轉,r表...