add comment
basic version
v1
add test cases
correct a bug and pass the oj
add comment