題目描述
輸入描述:
輸出描述:
注牛牛在註冊不同的**時,總是會使用不同的密碼來保證他的賬號安全。
為了保證他的密碼強度,牛牛使用他的「字串篩選器」來測試密碼的強度。
具體來說,他先將輸入的字串篩選分成四部分。
第一部分僅由小寫英文本母組成
第二部分僅由大寫英文本母組成
第三部分僅由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表...