forked from haoel/leetcode
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
rename the directory & add shell problems
- Loading branch information
Showing
186 changed files
with
349 additions
and
182 deletions.
There are no files selected for viewing
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
# Source : https://leetcode.com/problems/tenth-line/ | ||
# Author : Hao Chen | ||
# Date : 2015-03-31 | ||
|
||
################################################################################## | ||
# | ||
# How would you print just the 10th line of a file? | ||
# | ||
# For example, assume that file.txt has the following content: | ||
# | ||
# Line 1 | ||
# Line 2 | ||
# Line 3 | ||
# Line 4 | ||
# Line 5 | ||
# Line 6 | ||
# Line 7 | ||
# Line 8 | ||
# Line 9 | ||
# Line 10 | ||
# | ||
# Your script should output the tenth line, which is: | ||
# | ||
# Line 10 | ||
# | ||
# [show hint] | ||
# Hint: | ||
# 1. If the file contains less than 10 lines, what should you output? | ||
# 2. There's at least three different solutions. Try to explore all possibilities. | ||
################################################################################## | ||
|
||
#!/bin/sh | ||
|
||
|
||
# Read from the file file.txt and output the tenth line to stdout. | ||
|
||
# Solution One | ||
awk 'NR==10{print $0}' file.txt | ||
|
||
# Solution Two | ||
sed -n '10p' file.txt | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# Source : https://leetcode.com/problems/transpose-file/ | ||
# Author : Hao Chen | ||
# Date : 2015-03-31 | ||
|
||
################################################################################## | ||
# | ||
# Given a text file file.txt, transpose its content. | ||
# | ||
# You may assume that each row has the same number of columns and each field is separated by the ' ' character. | ||
# | ||
# For example, if file.txt has the following content: | ||
# | ||
# name age | ||
# alice 21 | ||
# ryan 30 | ||
# | ||
# Output the following: | ||
# | ||
# name alice ryan | ||
# age 21 30 | ||
################################################################################## | ||
|
||
#!/bin/sh | ||
|
||
# Read from the file file.txt and print its transposed content to stdout. | ||
awk ' | ||
{ | ||
for (i = 1; i <= NF; i++) { | ||
if (NR == 1){ | ||
s[i]=$i; | ||
}else{ | ||
s[i] = s[i] " " $i; | ||
} | ||
} | ||
} | ||
END { | ||
for (i = 1; s[i] != ""; i++) { | ||
print s[i]; | ||
} | ||
}' file.txt | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
# Source : https://leetcode.com/problems/valid-phone-numbers/ | ||
# Author : Hao Chen | ||
# Date : 2015-03-31 | ||
|
||
################################################################################## | ||
# | ||
# 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 | ||
################################################################################## | ||
|
||
#!/bin/sh | ||
|
||
|
||
# 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 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# Source : https://leetcode.com/problems/word-frequency/ | ||
# Author : Hao Chen | ||
# Date : 2015-03-31 | ||
|
||
################################################################################## | ||
# | ||
# Write a bash script to calculate the frequency of each word in a text file words.txt. | ||
# | ||
# For simplicity sake, you may assume: | ||
# | ||
# words.txt contains only lowercase characters and space ' ' characters. | ||
# Each word must consist of lowercase characters only. | ||
# Words are separated by one or more whitespace characters. | ||
# | ||
# For example, assume that words.txt has the following content: | ||
# the day is sunny the the | ||
# the sunny is is | ||
# | ||
# Your script should output the following, sorted by descending frequency: | ||
# | ||
# the 4 | ||
# is 3 | ||
# sunny 2 | ||
# day 1 | ||
# | ||
# Note: | ||
# Don't worry about handling ties, it is guaranteed that each word's frequency count is unique. | ||
# | ||
# [show hint] | ||
# Hint: | ||
# Could you write it in one-line using Unix pipes? | ||
################################################################################## | ||
|
||
#!/bin/sh | ||
|
||
# Read from the file words.txt and output the word frequency list to stdout. | ||
cat words.txt | tr [:space:] "\n" | sed '/^$/d' | tr '[:upper:]' '[:lower:]'|sort|uniq -c|sort -nr | awk '{ print $2,$1}' | ||
|