---
# System prepended metadata

title: 李 interview

---

# 李 interview

## Q1.
取出工作經歷(employmentHistory)中，任職最久的一份工作
```php=
<?php

$payload = '{
  "employmentHistory": [
    {
      "employer": "JKL Inc.",
      "position": "Web Developer",
      "startDate": "2008-01-01",
      "endDate": "2009-12-31"
    },
    {
      "employer": "ABC Inc.",
      "position": "Software Engineer",
      "startDate": "2010-01-01",
      "endDate": "2012-06-30"
    },
    {
      "employer": "MNO Corp.",
      "position": "Software Engineer",
      "startDate": "2010-01-01",
      "endDate": "2011-12-31"
    },
    {
      "employer": "XYZ Corp.",
      "position": "Senior Software Engineer",
      "startDate": "2012-07-01",
      "endDate": "2013-12-31"
    },
    {
      "employer": "UVW Inc.",
      "position": "Senior Software Engineer",
      "startDate": "2012-01-01",
      "endDate": "2014-12-31"
    },
    {
      "employer": "Acme Corp.",
      "position": "Lead Software Engineer",
      "startDate": "2014-01-01",
      "endDate": "2015-12-31"
    },
    {
      "employer": "DEF Inc.",
      "position": "Software Developer",
      "startDate": "2016-01-01",
      "endDate": "2017-12-31"
    },
    {
      "employer": "GHI Corp.",
      "position": "Systems Analyst",
      "startDate": "2018-01-01",
      "endDate": "2019-12-31"
    },
    {
      "employer": "LMN Inc.",
      "position": "Senior Systems Analyst",
      "startDate": "2020-01-01",
      "endDate": "2021-06-30"
    },
    {
      "employer": "PQR Corp.",
      "position": "Software Engineer",
      "startDate": "2021-07-01",
      "endDate": null
    }
  ]
}';

$maxDuration = array(date(0), -1);
for($p as $payload["employmentHistory"]){
    $diff = date($p["endate"]) - date($p["startDate"]);
    if($diff > $maxDuartion[0]){
        $maxDuration[1] = $p;
    }
}
return $maxDuration[1];
```


## Q2.
Valid Parentheses
Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.

An input string is valid if:

Open brackets must be closed by the same type of brackets.
Open brackets must be closed in the correct order.
Every close bracket has a corresponding open bracket of the same type.

```php=
<? php

    function isValid($s) {
    
    }

/**
Example 1:
Input: s = "()"
Output: true

Example 2:
Input: s = "()[]{}"
Output: true

Example 3:
Input: s = "(]"
Output: false

Example 4:
Input: s = "{[({})]}"
Output: true
**/
```

stack<char> S;
for(auto c: s){
    if(c == '(' || c == '[' || c == '{'){
        S.push(c);
    } 
    else if(c == ')'){
        if(S.empty() || S.top() != '('){
            return false;
        }
        S.pop();
    }
    else if(c == ']'){
        if(S.empty() || S.top() != '['){
            return false;
        }
        S.pop();
    }
    else if(c == '}'){
        if(S.empty() || S.top() != '{'){
            return false;
        }
        S.pop();
    }
}
return S.empty();