leetcode everyday 1

Problem 1 : Two Sum

Description

Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.

Example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

class :
def twoSum(self, nums: List[int], target: int) -> List[int]:
r = {}
for x in range(0,len(nums)):
n = target - nums(x) #find the other number
if n in r: #
return [r[n],x] #return the addresses of matched numbers
r[nums[x]] = x #input the address of number to r{}

Problem 2 : Add two numbers

Description

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.
You may assume the two numbers do not contain any leading zero, except the number 0 itself.

Example:
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
Explanation: 342 + 465 = 807.

class Solution:
def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
carry = 0
root = n = ListNode(0)
while l1 or l2 or carry:
v1 = v2 = 0
if l1:
v1 = l1.val
l1 = l1.next
if l2:
v2 = l2.val
l2 = l2.next
carry, val = divmod(v1+v2+carry,10)
n.next = ListNode(val)
n = n.next
return root.next

Problems 3 : Longest Substring Without Repeating Characters

Description

Given a string, find the length of the longest substring without repeating characters.

Example 1:
Input: “abcabcbb”
Output: 3
Explanation: The answer is “abc”, with the length of 3.

class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
usedchar = {}
for i in range(len(s)):
if s[i] in usedchar and start<= usedchar(s[i]):
start = usedchar(s[i])+1
else:
maxlength = max(maxlength, i-start+1)
return maxlength

Problems 4 : Longest Palindromic Substring

Description

Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.

Example 1:
Input: “babad”
Output: “bab”
Note: “aba” is also a valid answer.

class Solution(object):
def self.helper(object):
while i >=0 and r<len(s) and s[l]==s[r]:
l-=1;r+=1
return s[l+1:r]

def longestPalindrome(self, s):
res = ""
tem = self.helper(s,i,i)
if len(tem)>len(res):
res = tem
tem = self.helper(s,i,i+1)
if len(tem) > len(res):
res = tem
return res