Skip to content

Commit

Permalink
rename the directory & add shell problems
Browse files Browse the repository at this point in the history
  • Loading branch information
haoel committed Mar 31, 2015
1 parent 766f6c6 commit 899e393
Show file tree
Hide file tree
Showing 186 changed files with 349 additions and 182 deletions.
378 changes: 196 additions & 182 deletions README.md

Large diffs are not rendered by default.

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.
42 changes: 42 additions & 0 deletions shell/TenthLine.sh
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

43 changes: 43 additions & 0 deletions shell/TransposeFile.sh
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



30 changes: 30 additions & 0 deletions shell/ValidPhoneNumbers.sh
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

38 changes: 38 additions & 0 deletions shell/WordFrequency.sh
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}'

0 comments on commit 899e393

Please sign in to comment.