From 9277faf85b1b378fe7be0c2ae05dba248d76fc4b Mon Sep 17 00:00:00 2001 From: limbowandering <591176276@qq.com> Date: Thu, 25 Apr 2019 23:08:52 +0800 Subject: [PATCH] add JS solution for 0027,0058,0234 --- solution/0027.Remove Element/Solution.js | 39 +++++++++++++ solution/0058.Length of Last Word/Solution.js | 16 +++++ .../0234.Palindrome Linked List/Solution.js | 58 +++++++++++++++++++ 3 files changed, 113 insertions(+) create mode 100644 solution/0027.Remove Element/Solution.js create mode 100644 solution/0058.Length of Last Word/Solution.js create mode 100644 solution/0234.Palindrome Linked List/Solution.js diff --git a/solution/0027.Remove Element/Solution.js b/solution/0027.Remove Element/Solution.js new file mode 100644 index 0000000000000..b4d8bcc06deca --- /dev/null +++ b/solution/0027.Remove Element/Solution.js @@ -0,0 +1,39 @@ +var removeElement3 = function (nums, val) { + let len = nums.length + if (len < 1) { + return 0 + } + + let i = 0 + while (i < len) { + if (nums[i] === val) { + nums[i] = nums[len - 1] + len-- + } else { + i++ + } + } + return len +}; + +var removeElement2 = function (nums, val) { + let i = 0 + for (let j = 0; j < nums.length; j++) { + if (nums[j] !== val) { + nums[i] = nums[j] + i++ + } + } + return i +} + +var removeElement = function (nums, val) { + let len = nums.length; + for (let i = 0; i < len; i++) { + if (nums[i] === val) { + nums.splice(i, 1); + i--; + } + } + return len; +} \ No newline at end of file diff --git a/solution/0058.Length of Last Word/Solution.js b/solution/0058.Length of Last Word/Solution.js new file mode 100644 index 0000000000000..a8d00bc3f916e --- /dev/null +++ b/solution/0058.Length of Last Word/Solution.js @@ -0,0 +1,16 @@ +var lengthOfLastWord = function (s) { + s = s.trim() + return s.length - s.lastIndexOf(" ") - 1 +}; + +var lengthOfLastWord2 = function (s) { + let res = 0 + for (let i = 0; i < s.length; i++) { + if (s[i] !== ' ' && (i === 0 || s[i - 1] === ' ')) { + res = 1 + } else if (s[i] !== ' ') { + res++ + } + } + return res +} \ No newline at end of file diff --git a/solution/0234.Palindrome Linked List/Solution.js b/solution/0234.Palindrome Linked List/Solution.js new file mode 100644 index 0000000000000..ce2a6c41720ca --- /dev/null +++ b/solution/0234.Palindrome Linked List/Solution.js @@ -0,0 +1,58 @@ +var isPalindrome2 = function (head) { + if (!head || !head.next) { + return true + } + let slow = head + let fast = head + while (fast !== null && fast.next !== null) { + slow = slow.next + fast = fast.next.next + } + if (fast !== null) { + slow = slow.next + } + + let p = new ListNode(0) + while (slow !== null) { + let t = slow.next + slow.next = p.next + p.next = slow + slow = t + } + + let left = head + let right = p.next + while (right !== null) { + if (left.val !== right.val) { + return false + } + left = left.next + right = right.next + } + return true +}; + +var isPalindrom3 = function (head) { + let arr = []; + let next = head; + while (next) { + arr.push(next.val); + next = next.next; + } + let len = Math.trunc(arr.length / 2); + for (let i = 0; i < len; i++) { + if (arr[i] !== arr[arr.length - 1 - i]) { + return false; + } + } + return true; +} + +var isPalindrome = function (head) { + let arr = [] + while (head) { + arr.push(head.val) + head = head.next + } + return arr.join('') === arr.reverse().join('') +} \ No newline at end of file