Abgabe als .py-Datei (bei mehreren Dateien als .zip komprimiert) an e.nie@campus.lmu.de bis 28.10.2021.
In dieser Übung geht es um die Anwendung der grundlegenden Konzepten in Python, die in der Übung erwähnt werden, wie function
, list
und string
.
Gegeben sei eine Liste von Integerzahlen nums
und eine Intergerzahl target
, geben Sie die Indizes der zwei Zahlen zurück, deren Summe gleich target
ist.
Sie können davon ausgehen, dass jede Eingabe genau eine Lösung hat, und Sie dürfen dasselbe Element nicht zweimal verwenden.
Sie können die Antwort in beliebiger Reihenfolge zurückgeben.
Beispiel 1
Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Erklärung: Da nums[0] + num[1] == 9, geben wir die Indizes [0,1] zurück.
Beispiel 2
Input: nums = [3,2,4], target = 6
Output: [1,2]
# Vervollstäntigen Sie die folgende Funktion, um Aufgabe 1 zu machen.
# benutze zweimal die for-Schleife
# O(nlog(n))
def twoSum(nums, target):
for i in range(0, len(nums)):
for j in range(i+1, len(nums)):
if nums[i] + nums[j] == target:
return [i, j]
twoSum([2,7,11,15],9)
# benutze einmal for-Schleife
# O(log(n))
def twoSum(nums, target):
# create a dictionary corresponding to the given num list, whose keys are target minus num and values are index.
nums2 = dict()
for pos, num in enumerate(nums):
nums2[target-num] = pos
for pos, num in enumerate(nums):
if num in nums2 and pos != nums2[num]: # one element can appear only once in the result
return [pos, nums2[num]]
twoSum([2,7,11,15],9)
[0, 1]
Schreiben Sie eine Funktion, um das längste gemeinsame Präfix-String in einer Liste von Strings zu finden.
Falls kein gemeinsames Präfix existiert, geben Sie eine leere Zeichenfolge ""
zurück.
Beispiel 1
Input: strs = ["uni", "universitaet", "universitaetsbibliothek"]
Output: "uni"
Beispiel 2
Input: strs = ["hund',"katze","pferd"]
Output:""
# Vervollstäntigen Sie die folgende Funktion, um Aufgabe 2 zu machen.
def longestCommonPrefix(strs):
'''
strs: List[str]
return str
'''
prefix = ""
smallest_s = min([len(s) for s in strs])
if smallest_s == 0: return prefix
for i in range(smallest_s):
new_letter = strs[0][i]
for s in strs:
if not s[i] == new_letter:
return prefix
prefix += new_letter
return prefix
strs = ["flower","flow","flight"]
longestCommonPrefix(strs)
'fl'
def longestCommonPrefix(strs):
'''
strs: List[str]
return str
'''
prefix = strs[0]
num = len(strs)
for i in range(1, num):
prefix = commonPrefix(prefix,strs[i])
return prefix
def commonPrefix(str1, str2):
commonPrefix = ""
for i in range(min(len(str1),len(str2))):
if str1[i] == str2[i]:
commonPrefix += str1[i]
else:
break
return commonPrefix
strs = ["flower","flow","flight"]
longestCommonPrefix(strs)
'fl'