給定兩個字元集合,乙個為全量字符集,乙個為已占用字符集。已占用的字符集中的字元不能再使用,要求輸出剩餘可用字符集。
輸入描述:輸入為乙個字串,字串中包含了全量字符集和已占用字符集,兩個字符集使用@連線,前面為全量,後面為已占用。
已占用字符集中的字元一定是全量字符集中的字元。
字符集中的字元跟字元之間用英文逗號分隔。
字符集中的字元表示為字元加數字,字元跟數字使用英文冒號分隔,比如a:1,表示1個a字元。字元只考慮英文本母,區分大小寫,數字只考慮正整形,數量不超過100,如果乙個字元都沒被占用,@標識仍然存在,例如a:3,b:5,c:2@
示例1:
輸入a:3,b:5,c:2@a:1,b:2
輸出a:2,b:3,c:2
注意:輸出的字元順序要跟輸入一致!如果某個字元已全被占用,不需要再輸出!
示例2:
輸入a:3,b:5,c:2@a:3,b:2
輸出b:3,c:2
用對映來模擬即可。
第二題沒看懂題目,時間不太夠。。。#include
#include
#include
#include
#include
#include
using
namespace std;
#define inf 0x3f3f3f3f
typedef
long
long ll;
char ss[
100010];
map<
char
,int
> mp;
char ans[60]
;int
main()
mp[now]
= data;
ans[sum]
= now;
sum++;}
if(ss[i]
=='@'
)break;}
for(
int j=i+
1; j) mp[now]
-= data;}}
for(
int k=
0; kprintf
("\n");
return0;
}
常用的邏輯計算有and(表示為&),or(表示為|),not(表示為!)。
它們的優先順序關係是not > and > or
例如: a|b&c = a|(b&c)
a&b|c&d = (a&b)|(c&d)
!a&b|c = ((!a)&b)|c
輸入描述:測試用例中間無空格,表示式只包含 0 , 1 , ( , ) , & , !, | , 保證輸入為合法輸入,長度不超過128字元,括號可以重複巢狀,例如((!0&1))|0 = 1。
輸出描述:輸出邏輯運算後的最終結果,0或者1
顯然這題直接輸出0或者1可以至少通過50%的測試樣例,如果時間不夠的話就應該想到這種保底的做法,正確做法和實現乙個四則運算計算器的做法差不多,先把字串轉為逆波蘭式,然後計算逆波蘭式,用棧搞來搞去。字元按順序入棧,1.遇到數字,不進棧,直接放入逆波蘭式中;2.遇到計算符,把它與棧頂字元進行優先順序比較,如果棧頂的字元優先順序大或者相同,則棧頂字元放入逆波蘭式中,出棧一次,繼續判斷優先順序直到當前計算符優先順序比棧頂大,那麼當前計算符入棧;3.遇到左括號,直接入棧,遇到右括號,開始出棧並且棧頂元素放入逆波蘭式中,此操作可以保證括號內的運算順序優先於括號外,直到左括號出棧則停止。
最後,把棧中元素全部取出按順序放入逆波蘭式中,由於入棧時保證了優先順序是從小到大的,所以出棧以後逆波蘭式肯定是按優先順序從大到小計算。
計算逆波蘭式,從前往後計算即可,遇到數字就入棧,遇到與和或操作則出棧兩次,把兩個數與(或),把結果入棧,遇到非操作,出棧,取非,結果入棧。
#include
#include
#include
#include
#include
#include
using
namespace std;
#define inf 0x3f3f3f3f
typedef
long
long ll;
char ss[
130]
,ss2[
130]
;int
precedence
(char op)
//運算子優先順序判斷
}void
tonibolan
(char
*s1,
char
*s2)
else
if(ch ==
')')
s.pop();
ch = s1[
++i];}
else
if(ch==
'!'|| ch==
'&'|| ch==
'|')
s.push
(ch)
; ch = s1[
++i];}
else
s2[j++]=
' ';}}
ch = s.
top();
s.pop();
while
(ch !=
'\0'
) s2[j++]=
'\0'
; cout<}int
nibolan
(char
*s)else
if(s[i]
==' '
) i++
;else
if(s[i]
=='!'
)else
if(s[i]
=='&'
)else
if(s[i]
=='|')}
return sd.
top();
}int
main()
華為2020校招筆試程式設計題
剛做完華為的筆試題,簡要描述一下三道程式設計題的解決方法以及python 實現 第一題大致描述 給定兩個已經公升序排序好的的序列a 和b 乙個數r,找出滿足以下條件的的 ai,bj 序列對 1.ai bj 2.bj和ai兩者的距離 滿足 bj ai r 要是該條件不滿足,就從序列b中找出 和ai 距...
2020阿里筆試程式設計題
選擇題很難做,阿里的秋招貌似非常難,大部分崗位都留給了實習生,但是兩道程式設計題不怎麼難。有乙個n n的地圖,乙隻兔子想要穿過這個地圖,給出的地圖是乙個二維陣列map i j 數值表示該位置的毒霧持續時間,當兔子在 x,y 位置時,它可以跳到 x 2,y 或者 x,y 2 位置,跳的時候需要對應等待...
筆試 程式設計題
1.class a class b public a int main 2.int main 3.int func int a int main little endian int main char p char a 2 printf 0x x,0x x,0x x p 1 p,short p re...