...
| Code Block |
|---|
import pandas as pd
header = pd.MultiIndex.from_product([['Semester1','Semester2'],['Maths','Science']])
d=([[12,45,67,56],[78,89,45,67],[45,67,89,90],[67,44,56,55]])
df = pd.DataFrame(d,
index=['Alisa','Bobby','Cathrine','Jack'],
columns=header)
# stack the dataframe
stacked_df=df.stack()
# unstack the dataframe
unstacked_df = stacked_df.unstack()
# stack the dataframe of column at level 0
stacked_df_lvl=df.stack(level=0)
# unstack the dataframe
unstacked_df1 = stacked_df_lvl.unstack() |
Algorithms
...
Palindrome number - Determine whether an integer is a palindrome
| Code Block |
|---|
def is_palindrome(word):
j = len(word)-1
i =0
while i<j and word[i].lower()==word[j].lower():
i+=1
j-=1
return (i>=j)
print(is_palindrome('Deleveled')) |
Two
...
sum - return indices of the two numbers such that they add up to a specific target
| Info |
|---|
Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, |
...
| Code Block |
|---|
def twoSum(self, nums, target):
seen = {}
for i, v in enumerate(nums):
remaining = target - v
if remaining in seen:
return [seen[remaining], i]
seen[v] = i
return [] |
Reverse integer - Given a 32-bit signed integer, reverse digits of an integer.
| Info |
|---|
Input: 123 → Output: 321 |
| Code Block |
|---|
class Solution(object):
def reverse(self, x):
if x >= 2**31-1 or x <= -2**31:
return 0
else:
strg = str(x)
if x >= 0 :
revst = strg[::-1]
else:
temp = strg[1:]
temp2 = temp[::-1]
revst = "-" + temp2
if int(revst) >= 2**31-1 or int(revst) <= -2**31:
return 0
else:
return int(revst) |
Merge two sorted linked lists and return it as a new list.
| Info |
|---|
Input: 1->2->4, 1->3->4 |
| Code Block |
|---|
class Solution:
def mergeTwoLists(self, l1, l2):
result = ListNode(0) # The new list we are going to eventually return
head = result # keep a pointer to the head so we can return head.next in the end
while(l1 != None and l2 != None): # This check is important in the case where one list is shorter than the other
if l1.val < l2.val: # Add l1's value as a new node to result if its less than l2's
result.next = ListNode(l1.val)
l1 = l1.next
result = result.next
elif l2.val < l1.val: # Add l2's value as a new node to result if its less than l1's
result.next = ListNode(l2.val)
l2 = l2.next
result = result.next
else: # In this case, the values must be equal so add both to result and move the linked lists forward
result.next = ListNode(l1.val)
result = result.next
result.next = ListNode(l2.val)
result = result.next
l1 = l1.next
l2 = l2.next
if l1 == None and l2 != None: # If l2 is longer than l1, add all of the remaining values of l2 to result
while(l2 != None):
result.next = ListNode(l2.val)
result = result.next
l2 = l2.next
elif l2 == None and l1 != None: # if l1 is longer than l2, add all of the remaining values of l1 to result
while(l1 != None):
result.next = ListNode(l1.val)
result = result.next
l1 = l1.next
return head.next # return the result |