2018測試開發(fā)面試總結(jié)

先記錄三個面試題

獲取list中重復次數(shù)最多的一個數(shù)

def countFreNum(targetList):
    """
    獲取list中重復次數(shù)最多的一個數(shù)
    方案:通過遍歷list,將list元素添加到dict中的key,重復次數(shù)作為value,對value做排序找出重復次數(shù)最多的元素
    :param targetList: 入?yún)?    :return:
    """
    #
    if not isinstance(targetList, list):
        return "目標內(nèi)容非list"
    if len(targetList) == 0:
        return "目標list內(nèi)容為空"
    # 保存統(tǒng)計結(jié)果到dict中
    res = {}
    for i in targetList:
        if i in res.keys():
            res[i] = res[i] + 1
        else:
            res[i] = 1
        print (res)

    # 將dict中value轉(zhuǎn)為list 遍歷list排序
    valueList = list(res.values())
    for li in range(len(valueList) - 1):
        for lj in range(li+1, len(valueList)):
            if valueList[li] <= valueList[lj]:
                valueList[li], valueList[lj] = valueList[lj], valueList[li]

    print(valueList)
    # 取最大的value值 遍歷dict取key值 出現(xiàn)次數(shù)最多的數(shù),可能不止一個
    freNum =[]
    for k, v in res.items():
        if v == valueList[0]:
            freNum.append(k)

    print("重復出現(xiàn)次數(shù)最多的數(shù):" + ', '.join(str(i) for i in freNum) + ", 重復出現(xiàn)" + str(valueList[0]) + "次")
    return freNum

查找字符串中對應字符串,并替換

def replaceStr(rStr, reStr, repStr):
    """
    查找字符串中對應字符串,并替換
    方案: 循環(huán)做查找替換操作,用while, for循環(huán)會疊字查找多次問題(補充說明)("aaaaaaab", "aa")
    :param rStr: 原字符串
    :param reStr: 要查找替換的字符串
    :param repStr: 要替換為的字符串
    :return:
    """
    targetStr = ""
    reLen = len(reStr)
    count = 0
    
    while count < len(rStr):
        print( count)
        if rStr[count:count + reLen] == reStr:
            targetStr = targetStr + repStr
            count = count + reLen
        else:
            targetStr = targetStr + rStr[count]
            count = count + 1
    print(targetStr)
    return targetStr

獲取輸入整數(shù)的最小不重復數(shù)

def minNum(num):
    """
    獲取輸入?yún)?shù)的最小不重復數(shù)
    不重復數(shù)定義:每一位上的數(shù)與相鄰的兩個數(shù)都不相等
    方案: 遍歷一個數(shù)字所有位上的數(shù),如果出現(xiàn)任意一個兩個相鄰的數(shù)相等即不是要找的數(shù)
    :param num: 原數(shù)據(jù)
    :return: 不重復數(shù)
    """
    if not isinstance(num, int):
        return "目標內(nèi)容非整數(shù)數(shù)值"
    if num < 10:
        return num
    tag = True
    while tag:
        num = num + 1
        numStr = str(num)
        count = 0
        for i in range(0, len(numStr)-1):
            if numStr[i] == numStr[i+1]:
                count = count + 1
        if count == 0:
            break
    print(num)
    return num
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容