最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

華為2019校招筆試題之處理字符串(python版)

 更新時(shí)間:2019年06月25日 08:36:11   作者:拾一滴清水  
這篇文章主要為大家詳細(xì)介紹了華為2019校招筆試題之處理字符串,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

華為2019在線筆試題,現(xiàn)整理如下,以供之后參考
GitHub

題目介紹

#################################################################
#################################################################
'''
題目描述:
-- 對(duì)輸入字符串檢查是否存在非法字符,輸出合法字符串(去重)和非法字符串(不去重)
-- 對(duì)合法字符串循環(huán)左移10次,在進(jìn)行排序輸出。(舉例:比如字符串"abc",循環(huán)左移一次的結(jié)果為"bca")
輸入描述:
(1) 字符串中的字符集合為 '0'-'9','a'-'z','A'-'Z',其余為非法字符串(空字符串作為定界符),
 有非法字符的字符串被視為非法輸入;
(2) 作為輸入的字符串個(gè)數(shù)不超過(guò)100,每個(gè)字符串長(zhǎng)度不超過(guò)64;
(3) 作為輸入的連續(xù)空字符串(空格/制表符/回車/換行符)作為一個(gè)空格處理(作為定界符,字符串起始字符不能為空);
(4) 輸入每行只有一個(gè)字符串
(5) 輸入以空行結(jié)束
輸出描述:
(1) 輸出合法字符串并去重
(2) 輸出所有非法字符串
(3) 對(duì)結(jié)果1的去重合法字符串循環(huán)左移10次
(4) 對(duì)結(jié)果3合法字符串字符串排序,按ASCII表字符從小到大順序排序
注意事項(xiàng):
-- 每輸入一個(gè)字符后用空格跟下一個(gè)字符串隔離,作為輸出的所有字符串之間只能有一個(gè)空格(作為定界符);
示例1:
-- 輸入
abc
def
==
acd123
44234tjg
aga'-=
ad--s
abd
123
abcdef
1234567890123456789012345678901234567890123
45678901234567890123
EDFG
SDFG
ABC
DEF
cccc
a*b=1
dd
87&&^
asdfas
234abc35
765rgfh4sd
1231
123
==
EDFG

-- 輸出
abc def acd123 44234tjg abd 123 abcdef 1234
5678901234567890123456789012345678901234567
8901234567890123 EDFG SDFG ABC DEF cccc dd
asdfas 234abc35 765rgfh4sd 1231
== aga'-= as--s a*b=1 87&&^ ==
bca efd 23acd1 234tjg44 bda 231 efabcd 1234
5678901234567890123456789012345678901234567
8901231234567890 FGED FGSD BCA EFD cccc dd
asasdf 4abc3523 765rgfh4sd 3112
1234567890123456789012345678901234567890123
45678901231234567890 231 234tjg44 23acd1 31
12 4abc3523 765rgfh4sd BCA EFD FGED FGSD as
asdf bca bda cccc dd efabcd efd
'''

一些技巧

##################################################################
##################################################################
'''
NOTE:
# 注意輸入時(shí)strip()、split()用法
# extend() 函數(shù)用于在列表末尾一次性追加另一個(gè)序列中的多個(gè)值(用新列表擴(kuò)展原來(lái)的列表)
# ord('a') 返回字符a的ASCII碼
# index = [m.start() for m in re.finditer(' ',x)] 返回輸入字符串中空格所在索引位置
# 字符串去重時(shí),由于需要?jiǎng)h除列表新加入的元素,而remove()只能移除列表中第一個(gè)匹配的元素,因此需要找到需去重的字符串索引
# 用pop(index),從后往前的彈出。由于在此期間存儲(chǔ)字符串的列表長(zhǎng)度在動(dòng)態(tài)改變,而for循環(huán)不能動(dòng)態(tài)改變數(shù)組長(zhǎng)度,因此用while

# split(str="",num=string.count(str)) 函數(shù)
# str_test = 'This\t\t is a\t\t\t test for split()'
# 輸入:str_test.split()  # 默認(rèn)分割(刪除)所有的空字符,包括空格、換行(\n)、制表符(\t)等
# 輸出:['This', 'is', 'a', 'test', 'for', 'split()']
# 輸入:str_test.split('s') # 分割所有的字符s
# 輸出:['Thi', '\t\t i', ' a\t\t\t te', 't for ', 'plit()']
# 輸入:str_test.split('s',2) # 分割前2個(gè)字符s
# 輸出:['Thi', '\t\t i', ' a\t\t\t test for split()']
'''

具體代碼

import sys


# 初始化輸入
def input_init():
 string_list = []
 while True:
 line = sys.stdin.readline().rstrip('\n') # 逐行讀入,并去除行末的換行符
 if 0 == len(line):    # 輸入以空行結(jié)束,break語(yǔ)句較強(qiáng)應(yīng)放在 continue語(yǔ)句前,不然會(huì)陷入死循環(huán)
  break
 if len(line) > 64:    # 每個(gè)字符串長(zhǎng)度不超過(guò)64
  continue
 if len(string_list) > 100-1:   # 輸入字符串個(gè)數(shù)不超過(guò)100
  continue
 if (line.startswith(' ')) & (0 != len(line)): # 輸入字符串不能以空格開(kāi)始
  continue
 temp_str = line.split()    # split(),默認(rèn)分割(刪除)所有的空字符,包括空格、換行(\n)、制表符(\t)等
 string_list.append(' '.join(temp_str))  # 輸入的連續(xù)空字符串(空格/制表符/回車/換行符)作為一個(gè)空格處理
 return string_list


# 保存合法字符串
def get_legal_string(string_list: list):
 number_ls = list("0123456789")
 letter_ls = list("abcdefghijklmnopqrstuvwxyz")
 up_letter_ls = []
 for letter in letter_ls:
 up_letter_ls.append(letter.upper())

 flag = int(0)
 legal_str = []

 for index in range(0, len(string_list)):
 temp_str = string_list[index]
 for ix in range(0, len(temp_str)):
  x = temp_str[ix]
  if (x in number_ls) | (x in letter_ls) | (x in up_letter_ls):
  # 合法字符串
  flag = 1
  else:
  flag = 0
  break
 if flag:
  legal_str.append(temp_str)
 return legal_str


# 去除列表中重復(fù)的字符串
def remove_repeat_string(string_list: list):
 remove_repeated_str = string_list.copy()
 ix = 0
 while True:
 temp_str = remove_repeated_str[ix]
 count = remove_repeated_str.count(temp_str)  # 統(tǒng)計(jì)重復(fù)字符串個(gè)數(shù)
 if ix == len(remove_repeated_str)-1:
  break
 if count == 1:
  ix = ix + 1
  continue
 while count > 1:     # for循環(huán)不能動(dòng)態(tài)改變數(shù)組長(zhǎng)度,因此用while
  count = count - 1
  j = 1
  while True:
  need_remove = remove_repeated_str[-j]  # 反序遍歷
  if temp_str == need_remove:
   #remove_repeated_str.remove(need_remove) # 因?yàn)閞emove()只能移除列表中第一個(gè)匹配的元素
   pop_index = len(remove_repeated_str) - j
   remove_repeated_str.pop(pop_index)  # 刪除指定索引位置元素(反序)
   break
  else:
   j = j + 1
 return remove_repeated_str


# 保存非法字符串
def get_non_legal_string(raw_string_list: list, legal_string: list):
 non_legal_str = []
 for i in raw_string_list:
 if i in legal_string:
  continue
 non_legal_str.append(i)
 return non_legal_str


# 左移10次字符 10%len(str)
def shift_string(string_list: list):
 shift_string = []
 for shift_str in string_list:
 start = 10 % len(shift_str)
 shift_temp = ""
 shift_temp += shift_str[start:]
 shift_temp += shift_str[:start]
 shift_string.append(shift_temp)
 return shift_string


# 輸出字符串結(jié)果
def output_string(string_list: list):
 output = ""
 for str_ in string_list:
 output += str_ + " "
 print(output)


def main():
 # 原始輸入
 str_list = input_init()
 # 保存合法字符串
 legal_str = get_legal_string(str_list)
 # 保存非法字符串
 non_legal_str = get_non_legal_string(raw_string_list=str_list, legal_string=legal_str)
 # 保存合法字符串_去重
 remove_repeated_string = remove_repeat_string(legal_str)
 # 1.輸出去重合法字符串
 output_string(remove_repeated_string)
 # 2.輸出未去重的非法字符串
 output_string(non_legal_str)
 # 3.輸出去重合法字符串左移10次后的結(jié)果
 shift_legal_str = shift_string(remove_repeated_string)
 output_string(shift_legal_str)
 # 4.輸出對(duì)合法字符串字符串左移后排序,按ASCII表字符從小到大順序排序
 shift_legal_str = sorted(shift_legal_str)
 output_string(shift_legal_str)


if __name__ == '__main__':
 main()

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python-GUI?wxPython之自動(dòng)化數(shù)據(jù)生成器的項(xiàng)目實(shí)戰(zhàn)

    Python-GUI?wxPython之自動(dòng)化數(shù)據(jù)生成器的項(xiàng)目實(shí)戰(zhàn)

    本文主要介紹了Python-GUI?wxPython之自動(dòng)化數(shù)據(jù)生成器實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • mat矩陣和npy矩陣實(shí)現(xiàn)互相轉(zhuǎn)換(python和matlab)

    mat矩陣和npy矩陣實(shí)現(xiàn)互相轉(zhuǎn)換(python和matlab)

    這篇文章主要介紹了mat矩陣和npy矩陣實(shí)現(xiàn)互相轉(zhuǎn)換(python和matlab),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • python實(shí)現(xiàn)圖像隨機(jī)裁剪的示例代碼

    python實(shí)現(xiàn)圖像隨機(jī)裁剪的示例代碼

    這篇文章主要介紹了python實(shí)現(xiàn)圖像隨機(jī)裁剪的示例代碼,幫助大家更好的理解和使用python處理圖片,感興趣的朋友可以了解下
    2020-12-12
  • python中注釋用法簡(jiǎn)單示例

    python中注釋用法簡(jiǎn)單示例

    注釋即對(duì)程序代碼的解釋,在寫(xiě)程序時(shí)需適當(dāng)使用注釋,以方便自己和他人理解程序各部分的作用,下面這篇文章主要給大家介紹了關(guān)于python中注釋用法的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • Python中的閉包詳細(xì)介紹和實(shí)例

    Python中的閉包詳細(xì)介紹和實(shí)例

    這篇文章主要介紹了Python中的閉包詳細(xì)介紹和實(shí)例,本文先是詳細(xì)講解了閉包的相關(guān)知識(shí),然后給出了python中閉包例子、lamada例子,需要的朋友可以參考下
    2014-11-11
  • Python Subprocess模塊原理及實(shí)例

    Python Subprocess模塊原理及實(shí)例

    這篇文章主要介紹了Python Subprocess模塊原理及實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python自動(dòng)結(jié)束mysql慢查詢會(huì)話的實(shí)例代碼

    python自動(dòng)結(jié)束mysql慢查詢會(huì)話的實(shí)例代碼

    這篇文章主要介紹了python自動(dòng)結(jié)束mysql慢查詢會(huì)話,主要涉及到了mysql慢查詢會(huì)話查詢,定時(shí)任務(wù)的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2019-10-10
  • 基于 Python實(shí)現(xiàn)云服務(wù)器的CDN域名遠(yuǎn)程鑒權(quán)配置

    基于 Python實(shí)現(xiàn)云服務(wù)器的CDN域名遠(yuǎn)程鑒權(quán)配置

    這篇文章主要介紹了基于 Python實(shí)現(xiàn)云服務(wù)器的CDN域名遠(yuǎn)程鑒權(quán)配置,文章內(nèi)容技術(shù)詳細(xì),具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • 詳解Python如何實(shí)現(xiàn)尾遞歸優(yōu)化

    詳解Python如何實(shí)現(xiàn)尾遞歸優(yōu)化

    尾遞歸是函數(shù)返回最后一個(gè)操作是遞歸調(diào)用,則該函數(shù)是尾遞歸。本文將介紹Python是如何實(shí)現(xiàn)尾遞歸優(yōu)化的,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-05-05
  • Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

    Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例

    這篇文章主要介紹了Python使用文件操作實(shí)現(xiàn)一個(gè)XX信息管理系統(tǒng)的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評(píng)論

巩义市| 唐山市| 蓬莱市| 成安县| 怀远县| 惠州市| 古丈县| 安仁县| 淮阳县| 邛崃市| 庄浪县| 铜川市| 和硕县| 双桥区| 宜黄县| 大石桥市| 泰顺县| 噶尔县| 曲阜市| 邵阳市| 神农架林区| 和田县| 滨州市| 卢龙县| 池州市| 八宿县| 塔河县| 岐山县| 崇礼县| 涡阳县| 常宁市| 英超| 扎鲁特旗| 江山市| 景德镇市| 塔城市| 娄烦县| 临城县| 涿州市| 吐鲁番市| 赤水市|