## 193. Valid Phone Numbers

Problem:

Given a text file `file.txt` that contains list of phone numbers (one per line), write a one liner bash script to print all valid phone numbers.

You may assume that a valid phone number must appear in one of the following two formats: (xxx) xxx-xxxx or xxx-xxx-xxxx. (x means a digit)

You may also assume each line in the text file must not contain leading or trailing white spaces.

For example, assume that `file.txt` has the following content:

```987-123-4567
123 456 7890
(123) 456-7890
```

Your script should output the following valid phone numbers:

```987-123-4567
(123) 456-7890```

Solution:

```# Read from the file file.txt and output all valid phone numbers to stdout.
grep -P '^(\d{3}-|\(\d{3}\) )\d{3}-\d{4}\$' file.txt
```

## LeetCode 78. Subsets

Problem:

Given a set of distinct integers, nums, return all possible subsets.

Note: The solution set must not contain duplicate subsets.

For example,
If nums = `[1,2,3]`, a solution is:

```[
,
,
,
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]```

Solution:

```public class Solution {
public List<List<Integer>> subsets(int[] nums) {
List<List<Integer>> result = new ArrayList<List<Integer>>();
if (nums.length == 0) return result;
List<Integer> set0 = new ArrayList<Integer>();
List<Integer> set1 = new ArrayList<Integer>();