classSolution: defsplit(self, target, s): """ split str according special divider :param target: str :param s: str :return: list """ start = 0 segments = [] for i inrange(len(s)): if s[i] == target: segments.append(s[start:i]) start = i + 1 segments.append(s[start:]) return segments
defjoin(self, link, lists): """join items in the list by special linker :param link: str :param lists: list :return: str """ res = '' for i in lists: res += (i+link) iflen(link): res = res[:-len(link)] return res
defreplace(self, target, replce, string): """replace character in the str with anoteher charcter :param target: str :param replace: str :param string: str :return: str """ segments = self.split(target, string) res = self.join(replce, segments) return res
deftest_replaceSpace(self): s = ["cad eaeb", "a b", "a b ", " a b", " ", "We are happy.", ""] answer = ["cad%20eaeb", "a%20%20%20b", "a%20b%20%20", "%20%20a%20b", "%20%20%20%20%20", "We%20are%20happy.", ""] for i inrange(len(s)): self.assertEqual(self.test_class.replaceSpace(s[i]), answer[i])
deftearDown(self): del self.test_class
if __name__ == "__main__": # 简单测试的方法 unittest.main()