Skip to content

Commit

Permalink
committing new python challanges
Browse files Browse the repository at this point in the history
  • Loading branch information
pelinkeskin committed Oct 23, 2023
1 parent 5e9c218 commit e636cbe
Show file tree
Hide file tree
Showing 3 changed files with 137 additions and 0 deletions.
47 changes: 47 additions & 0 deletions codewars_solns/python_challanges/FindtheDifferenceofTwoArrays.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
"""Find the Difference of Two Arrays
Easy
Topics
Companies
Hint
Given two 0-indexed integer arrays nums1 and nums2, return a list answer of size 2 where:
answer[0] is a list of all distinct integers in nums1 which are not present in nums2.
answer[1] is a list of all distinct integers in nums2 which are not present in nums1.
Note that the integers in the lists may be returned in any order.
Example 1:
Input: nums1 = [1,2,3], nums2 = [2,4,6]
Output: [[1,3],[4,6]]
Explanation:
For nums1, nums1[1] = 2 is present at index 0 of nums2, whereas nums1[0] = 1 and nums1[2] = 3 are not present in nums2. Therefore, answer[0] = [1,3].
For nums2, nums2[0] = 2 is present at index 1 of nums1, whereas nums2[1] = 4 and nums2[2] = 6 are not present in nums2. Therefore, answer[1] = [4,6].
Example 2:
Input: nums1 = [1,2,3,3], nums2 = [1,1,2,2]
Output: [[3],[]]
Explanation:
For nums1, nums1[2] and nums1[3] are not present in nums2. Since nums1[2] == nums1[3], their value is only included once and answer[0] = [3].
Every integer in nums2 is present in nums1. Therefore, answer[1] = [].
Constraints:
1 <= nums1.length, nums2.length <= 1000
-1000 <= nums1[i], nums2[i] <= 1000"""

from typing import List
class Solution:
def findDifference(self, nums1: List[int], nums2: List[int]) -> List[List[int]]:
new_list=[[],[]]
n1_l=len(nums1)
n2_l=len(nums2)
if n1_l>n2_l:
nums2+=[nums2[0]]*(n1_l-n2_l)
elif n2_l>n1_l:
nums1+=[nums1[0]]*(n2_l-n1_l)

for i,j in zip(nums1,nums2):
if not j in nums1:
new_list[1]+=[j]
if not i in nums2:
new_list[0]+=[i]
new_list[0]=list(set(new_list[0]))
new_list[1]=list(set(new_list[1]))
return new_list
78 changes: 78 additions & 0 deletions codewars_solns/python_challanges/sorting.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
myarr=[6, 3, 0, 5]


def sort_buble_sort(myarr):
n=len(myarr)
for i in range(n):
swapped=False
for j in range(n-i-1):
if myarr[j]>myarr[j+1]:
myarr[j],myarr[j+1]=myarr[j+1],myarr[j]
swapped=True
if swapped == False:
break
return myarr
print("buble_sort \n",sort_buble_sort(myarr))

myarr=[6, 3, 0, 5]
def selection_sort(myarr):
n=len(myarr)
for i in range(n):
min_ind=i
for j in range(i+1,n):
if myarr[min_ind]>myarr[j]:
min_ind=j
myarr[i],myarr[min_ind]=myarr[min_ind],myarr[i]
return myarr
print("selection_sort \n",selection_sort(myarr))

myarr=[6, 3, 0, 5]
def mergesort(myarr):
if len(myarr)>1:
mid = len(myarr)//2
L=myarr[:mid]
R=myarr[mid:]
mergesort(L)
mergesort(R)
i=j=k=0
while i<len(L) and j < len(R):
if L[i]<R[j]:
myarr[k]=L[i]
i+=1
else:
myarr[k]=R[j]
j+=1
k+=1
while i<len(L):
myarr[k]=L[i]
i+=1
k+=1
while j<len(R):
myarr[k]=R[j]
j+=1
k+=1
return myarr
print("merge_sort \n",mergesort(myarr))

myarr=[6, 3, 0, 5]
def quicksort(myarr):
def partition(arr,low,high):
pivot=arr[high]
i=low-1
for j in range(low,high):
if arr[j]<=pivot:
i=i+1
arr[i],arr[j]=arr[j],arr[i]
arr[i+1],arr[high]=arr[high],arr[i+1]
return i+1

def sort(arr,low,high):
if low<high:
pi=partition(arr,low,high)
sort(arr,low,pi-1)
sort(arr,pi+1,high)

sort(myarr,0,len(myarr)-1)
return myarr

print("quicksort \n",quicksort(myarr))
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import unittest
from FindtheDifferenceofTwoArrays import Solution

class test_FindtheDifferenceofTwoArrays(unittest.TestCase):
def test(self):
soln=Solution()
self.assertEqual(soln.findDifference(nums1 = [1,2,3], nums2 = [2,4,6]),[[1,3],[4,6]])
self.assertEqual(soln.findDifference(nums1 = [1,2,3,3], nums2 = [1,1,2,2]),[[3],[]])
self.assertEqual(soln.findDifference(nums1 = [-68,-80,-19,-94,82,21,-43], nums2 = [-63]),[[-94, -19, -80, 82, 21, -43, -68],[-63]])

if __name__ == '__main__':
unittest.main()

0 comments on commit e636cbe

Please sign in to comment.