20200402 喪喪的筆試兩道題

2021-10-23 02:01:37 字數 3333 閱讀 8014

筆試第二道題

題目意思,給定數n,輸入n個字串,n個字串可能存在相同的,統計每個字串出現的個數,並降序排序。個數相同則按照字串字典序排序(小的在前)

lst =

dct =

t =int

(input

('請輸入字串的數目'))

while t:

t -=

1input()

)for word in lst:

if word in dct:

dct[word]

= dct[word]+1

else

: dct[word]=1

x =list

(dct.keys())

y =list

(dct.values())

for i in

range

(len

(x))

:for j in

range

(len

(y)-1)

:if y[j]

< y[j +1]

or(y[j]

== y[j +1]

and x[j]

< x[j +1]

):tmp = y[j]

y[j]

= y[j +1]

y[j +1]

= tmp

tmp1 = x[j]

x[j]

= x[j +1]

x[j +1]

= tmp1

print

(x, y)

# 儲存不相同的字串

# lst1 = list(set(lst))

# 建立乙個字串和字串個數的字典

# dct = dict(zip(lst1, [0] * len(lst1)))

## for s in lst:

# dct[s] += 1

今天大致看了一下別人的思路,得到如下**

lst =

t =int

(input

('請輸入字串的數目'))

while t:

t -=

1input()

)# 儲存不相同的字串

lst1 =

list

(set

(lst)

)# 建立乙個字串和字串個數的字典

dct =

dict

(zip

(lst1,[0

]*len(lst1)))

for s in lst:

dct[s]+=1

x =list

(dct.keys())

y =list

(dct.values())

for i in

range

(len

(x))

:for j in

range

(len

(y)-1)

:if y[j]

< y[j +1]

or(y[j]

== y[j +1]

and x[j]

< x[j +1]

):tmp = y[j]

y[j]

= y[j +1]

y[j +1]

= tmp

tmp1 = x[j]

x[j]

= x[j +1]

x[j +1]

= tmp1

print

(x, y)

拿到題覺著很簡單,我覺著就是一道

#include

using

namespace std;

typedef

struct

node;

node per[

11000];

bool

cmp(node a,node b)

intmain()

}if(book==0)

}sort

(per,per+cnt,cmp)

;for

(int i=

0;ireturn0;

}

筆試第一道題

題目的大概意思就是讓你設計乙個合格的輸入模式。當時過了,但是要考慮的因素有些多,花了些時間

import sys

for line in sys.stdin:

t = line.split(

) flag =1if

(t[0

]>=

'a'and t[0]

<=

'z')

or t[0]

=='not'

: flag =

1else

: flag =0if

not(

'a'<= t[

len(t)-1

]<=

'z')

: flag =

0for i in

range(1

,len

(t))

:if t[i]

=='and':if

not(

'a'<= t[i -1]

<=

'z')

: flag =

0break

elif t[i]

=='not':if

not(t[i -1]

=='or'

or t[i -1]

=='and'):

flag =

0break

elif t[i]

=='or':if

not(

'a'<= t[i -1]

<=

'z')

: flag =

0break

elif

'a'<= t[i]

<=

'z':

ifnot

(t[i -1]

=='and'

or t[i -1]

=='not'

or t[i -1]

=='or'):

flag =

0break

else

: flag =

0break

print

(flag)

兩道筆試題

昨天一朋友找工作,碰到兩道演算法筆試題,都是當於鍊錶操作的.原題具體的還原不過來了,不過大致是 1.有一單鏈表,找出最後第m個節點.昨天看到問題時,想到了小學應用題 汽車過山洞,假如這個汽車開著開著,等到車頭剛要出山洞,車尾離山洞出口也有一段距離嘛.這樣,這個題方法出來了 cpp node find...

C 兩道筆試題

現給定乙個含有n個元素的陣列,請隨機獲取其中的m個元素 不能重複獲取 include include using namespace std void grial int a,int n,int x for i 0 i k i int main grial a,sizeof a sizeof int...

兩道筆試題的感觸

今天做了兩道筆試題,收益良多。有些題,你會發現,雖然並不難,但是卻很容易沒有思路或者出錯,這都是源自平時的不求甚解。很多知識點,自以為已經掌握,其實只是管中窺豹,可見一斑。不要一味墨守成規,也要用於思考,很多東西既要知其然,也要知其所以然。我一直覺得了解和精通中間差著十萬八千里,看來還有很長一段路要...