傲梦python笔试题及答案Python笔试题如何获取输入python笔试题
下载地址 https://share.weiyun.com/gcOeOitM
资料目录 100道Python面试题 5个等待挑战的Python面试题(附答案) python基础面试题三十一道(附详细答案) python面试基础题十大陷阱(附详细答案) python面试真实笔试题带答案(1-10题) Python面试中必看的8个必考问题(附详细答案) Python爬虫开发面试常见问题(附详细答案) Python爬虫面试题(附详细答案) python数据分析师面试题选(附详细答案) Python数据挖掘试题四十道(附答案) 阿里巴巴Python开发工程师面试题(附答案) 常见的25个python面试问答(附详细答案) Python经典面试题和答案解析 四类必须提前准备的Python程序员面试问题 出现频率最高的python面试题集锦(附详细答案) 珍藏版Python web后端开发工程师面试试题 尚观python第一阶段考试(面试真题模拟) 老男孩Python全栈7期练习题(面试真题模拟) 傲梦python笔试题及答案 python 笔试题(附带答案) Python题库(已收录100道真题) python第一阶段考试题 python基础试题(含答案) PYTHON测试题和答案 Python考试题复习知识点试卷试题 python期末考试复习试卷
举例 亲密字符串 题目要求 有两个字符串,A和B,如果A字符串内部交换任意两个位置的字符就能够让A和B相等,就认为两个字符串是亲密字符串。 示例1 输入:A="cccb" ,B="cccb" 输出:True 解释: 任意两个c交换位置,都可以让A=B,他们是亲密字符串
示例2 输入:A="ccbcab", B="cccbab" 输出:True 解释:A内部交换A[2]和A[3]后,A=B,他们是亲密字符串
示例3 输入:A="ab", B="ab" 输出:False 解释:A字符串内部不论怎样交换,都不可能与B相同 思路分析 如果A==B成立,那么就必须满足,A中有某个字符出现了两次或以上,只有这样,才能满足交换两个字符后与B相等,这是示例1的情况 如果A!=B,满足亲密字符串的条件就是A与B有两处不相同,而且交换这两处不相同的字符后A==B成立,这是示例2 的情况 如果A B两个字符串的长度不相等,必然不是亲密字符串。 遍历两个字符串,统计相同索引字符不相同的次数,如果次数是0,那么就必须满足A字符串有某个字符出现了两次或以上,可以用一个集合来保存A中的字符,如过有某个字符出现了两次或以上,那么最终,集合的大小一定小于A字符串的长度。 如果不相同的次数是2,那么交错对比这两处字符,如果不相同次数既不是0也不是2,则一定不是亲密字符串 示例代码 # coding=utf-8
def is_close_str(str_1, str_2): # 长度要一致,且不能为0 if len(str_1) != len(str_2) or len(str_1) < 2: return False
index = 0 diff_index_lst = [] # 记录不一致的索引位置 char_set = set() while index < len(str_1): # 遇到相同位置字符不相同的情况 if str_1[index] != str_2[index]: diff_index_lst.append(index) if len(diff_index_lst) > 2: return False char_set.add(str_1[index]) index += 1
if len(diff_index_lst) == 0: if len(str_1) != len(char_set): return True elif len(diff_index_lst) == 2: diff_index_1 = diff_index_lst[0] diff_index_2 = diff_index_lst[1] # 两处不一样的地方交错比较 if str_1[diff_index_1] == str_2[diff_index_2] and \ str_1[diff_index_2] == str_2[diff_index_1]: return True
return False
if __name__ == '__main__': print(is_close_str("", "")) print(is_close_str('abc', 'acba')) print(is_close_str('ab', 'ab')) print(is_close_str('cccb', 'cccb')) print(is_close_str('ccbcab', 'cccbab')) print(is_close_str('acbcad', 'dcbcaa'))
|