From cb2f99c3a8ab2dd4340f81308db44bda3b663f03 Mon Sep 17 00:00:00 2001 From: Electrominch <64524860+Electrominch@users.noreply.github.com> Date: Thu, 6 Oct 2022 00:46:00 +0300 Subject: [PATCH] Day4 --- .../118. Pascal's Triangle.csproj | 11 +++++ 118. Pascal's Triangle/Program.cs | 12 +++++ 118. Pascal's Triangle/Solution.cs | 26 ++++++++++ .../142. Linked List Cycle II.csproj | 11 +++++ 142. Linked List Cycle II/ListNode.cs | 37 ++++++++++++++ 142. Linked List Cycle II/Program.cs | 15 ++++++ 142. Linked List Cycle II/Solution.cs | 28 +++++++++++ 189. Rotate Array/189. Rotate Array.csproj | 11 +++++ 189. Rotate Array/Program.cs | 12 +++++ 189. Rotate Array/Solution.cs | 34 +++++++++++++ .../566. Reshape the Matrix.csproj | 11 +++++ 566. Reshape the Matrix/Program.cs | 12 +++++ 566. Reshape the Matrix/Solution.cs | 27 ++++++++++ .../876. Middle of the Linked List.csproj | 11 +++++ 876. Middle of the Linked List/ListNode.cs | 37 ++++++++++++++ 876. Middle of the Linked List/Program.cs | 13 +++++ 876. Middle of the Linked List/Solution.cs | 15 ++++++ .../977. Squares of a Sorted Array.csproj | 11 +++++ 977. Squares of a Sorted Array/Program.cs | 11 +++++ 977. Squares of a Sorted Array/Solution.cs | 49 +++++++++++++++++++ Leetcode.sln | 44 +++++++++++++++-- 21 files changed, 434 insertions(+), 4 deletions(-) create mode 100644 118. Pascal's Triangle/118. Pascal's Triangle.csproj create mode 100644 118. Pascal's Triangle/Program.cs create mode 100644 118. Pascal's Triangle/Solution.cs create mode 100644 142. Linked List Cycle II/142. Linked List Cycle II.csproj create mode 100644 142. Linked List Cycle II/ListNode.cs create mode 100644 142. Linked List Cycle II/Program.cs create mode 100644 142. Linked List Cycle II/Solution.cs create mode 100644 189. Rotate Array/189. Rotate Array.csproj create mode 100644 189. Rotate Array/Program.cs create mode 100644 189. Rotate Array/Solution.cs create mode 100644 566. Reshape the Matrix/566. Reshape the Matrix.csproj create mode 100644 566. Reshape the Matrix/Program.cs create mode 100644 566. Reshape the Matrix/Solution.cs create mode 100644 876. Middle of the Linked List/876. Middle of the Linked List.csproj create mode 100644 876. Middle of the Linked List/ListNode.cs create mode 100644 876. Middle of the Linked List/Program.cs create mode 100644 876. Middle of the Linked List/Solution.cs create mode 100644 977. Squares of a Sorted Array/977. Squares of a Sorted Array.csproj create mode 100644 977. Squares of a Sorted Array/Program.cs create mode 100644 977. Squares of a Sorted Array/Solution.cs diff --git a/118. Pascal's Triangle/118. Pascal's Triangle.csproj b/118. Pascal's Triangle/118. Pascal's Triangle.csproj new file mode 100644 index 0000000..85c0864 --- /dev/null +++ b/118. Pascal's Triangle/118. Pascal's Triangle.csproj @@ -0,0 +1,11 @@ + + + + Exe + net6.0 + _118._Pascal_s_Triangle + enable + enable + + + diff --git a/118. Pascal's Triangle/Program.cs b/118. Pascal's Triangle/Program.cs new file mode 100644 index 0000000..b825b8b --- /dev/null +++ b/118. Pascal's Triangle/Program.cs @@ -0,0 +1,12 @@ +namespace _118._Pascal_s_Triangle +{ + internal class Program + { + static void Main(string[] args) + { + var res = new Solution().Generate(300); + foreach(var r in res) + Console.WriteLine(String.Join(" ", r)); + } + } +} \ No newline at end of file diff --git a/118. Pascal's Triangle/Solution.cs b/118. Pascal's Triangle/Solution.cs new file mode 100644 index 0000000..1dd9941 --- /dev/null +++ b/118. Pascal's Triangle/Solution.cs @@ -0,0 +1,26 @@ +namespace _118._Pascal_s_Triangle; + +public class Solution +{ + public IList> Generate(int numRows) + { + List> triangle = new List>() { new List { 1 } }; + if(numRows > 1) + triangle.Add(new List() { 1,1 }); + numRows -= 2; + while (numRows-- > 0) + { + IList prev = triangle[^1]; + int nextCount = prev.Count; + List row = new List() { 1 }; + for(int i = 1; i < nextCount; i++) + { + row.Add(prev[i-1] + prev[i]); + } + row.Add(1); + triangle.Add(row); + } + + return triangle; + } +} \ No newline at end of file diff --git a/142. Linked List Cycle II/142. Linked List Cycle II.csproj b/142. Linked List Cycle II/142. Linked List Cycle II.csproj new file mode 100644 index 0000000..980f705 --- /dev/null +++ b/142. Linked List Cycle II/142. Linked List Cycle II.csproj @@ -0,0 +1,11 @@ + + + + Exe + net6.0 + _142._Linked_List_Cycle_II + enable + enable + + + diff --git a/142. Linked List Cycle II/ListNode.cs b/142. Linked List Cycle II/ListNode.cs new file mode 100644 index 0000000..97d7a30 --- /dev/null +++ b/142. Linked List Cycle II/ListNode.cs @@ -0,0 +1,37 @@ +namespace _142._Linked_List_Cycle_II; + +//Definition for singly-linked list. +public class ListNode +{ + public int val; + public ListNode? next; + public ListNode(int val = 0, ListNode? next = null) + { + this.val = val; + this.next = next; + } + + public static ListNode Create(int[] nums) + { + ListNode l = new ListNode(nums[0]); + ListNode cur = l; + for (int i = 1; i < nums.Length; i++) + { + cur.next = new ListNode(nums[i]); + cur = cur.next; + } + return l; + } + + public override string ToString() + { + List list = new List(); + ListNode? cur = this; + while (cur != null) + { + list.Add(cur.val); + cur = cur.next; + } + return String.Join(" ", list); + } +} diff --git a/142. Linked List Cycle II/Program.cs b/142. Linked List Cycle II/Program.cs new file mode 100644 index 0000000..36c7c6e --- /dev/null +++ b/142. Linked List Cycle II/Program.cs @@ -0,0 +1,15 @@ +namespace _142._Linked_List_Cycle_II +{ + internal class Program + { + static void Main(string[] args) + { + var l1 = new ListNode(3); + var l2 = new ListNode(2); + + l1.next = l2; + l2.next = l1; + Console.WriteLine(new Solution().DetectCycle(l1)?.val); + } + } +} \ No newline at end of file diff --git a/142. Linked List Cycle II/Solution.cs b/142. Linked List Cycle II/Solution.cs new file mode 100644 index 0000000..d7f9698 --- /dev/null +++ b/142. Linked List Cycle II/Solution.cs @@ -0,0 +1,28 @@ +namespace _142._Linked_List_Cycle_II; + +public class Solution +{ + public ListNode? DetectCycle(ListNode head) + { + ListNode? cur = head; + int bit = 1 << 28; + int curAbs = 0; + while (cur!=null && (curAbs & bit) == 0) + { + cur.val ^= bit; + cur = cur.next; + if(cur != null) + curAbs = cur.val < 0 ? (cur.val * -1) : cur.val; + } + cur = head; + curAbs = cur.val < 0 ? (cur.val * -1) : cur.val; + while (cur != null && (curAbs & bit) != 0) + { + cur.val ^= bit; + cur = cur.next; + if (cur != null) + curAbs = cur.val < 0 ? (cur.val * -1) : cur.val; + } + return cur; + } +} \ No newline at end of file diff --git a/189. Rotate Array/189. Rotate Array.csproj b/189. Rotate Array/189. Rotate Array.csproj new file mode 100644 index 0000000..65a0b8e --- /dev/null +++ b/189. Rotate Array/189. Rotate Array.csproj @@ -0,0 +1,11 @@ + + + + Exe + net6.0 + _189._Rotate_Array + enable + enable + + + diff --git a/189. Rotate Array/Program.cs b/189. Rotate Array/Program.cs new file mode 100644 index 0000000..e8a6065 --- /dev/null +++ b/189. Rotate Array/Program.cs @@ -0,0 +1,12 @@ +namespace _189._Rotate_Array +{ + internal class Program + { + static void Main(string[] args) + { + var arr = new int[] { 1, 2, 3, 4, 5, 6}; + new Solution().Rotate(arr, 3); + Console.WriteLine(String.Join(" ", arr)); + } + } +} \ No newline at end of file diff --git a/189. Rotate Array/Solution.cs b/189. Rotate Array/Solution.cs new file mode 100644 index 0000000..2aebe2d --- /dev/null +++ b/189. Rotate Array/Solution.cs @@ -0,0 +1,34 @@ +namespace _189._Rotate_Array; + +public class Solution +{ + public void Rotate(int[] nums, int k) + { + k %= nums.Length; + if (k == 0) + return; + int oneCycleLen = nums.Length/ GCD(nums.Length, k); + for (int i = 0; i < nums.Length / oneCycleLen; i++) + MoveTo(nums, nums[i], i + k, k, oneCycleLen); + } + + private static void MoveTo(int[] array, int value, int to, int step, int curLen) + { + while (curLen-- > 0) + { + if (to >= array.Length) + to -= array.Length; + int buf = array[to]; + array[to] = value; + to += step; + value = buf; + } + } + + private static int GCD(int a, int b) + { + return b == 0 ? a : GCD(b, a % b); + } + + +} diff --git a/566. Reshape the Matrix/566. Reshape the Matrix.csproj b/566. Reshape the Matrix/566. Reshape the Matrix.csproj new file mode 100644 index 0000000..408a4f8 --- /dev/null +++ b/566. Reshape the Matrix/566. Reshape the Matrix.csproj @@ -0,0 +1,11 @@ + + + + Exe + net6.0 + _566._Reshape_the_Matrix + enable + enable + + + diff --git a/566. Reshape the Matrix/Program.cs b/566. Reshape the Matrix/Program.cs new file mode 100644 index 0000000..23c81f6 --- /dev/null +++ b/566. Reshape the Matrix/Program.cs @@ -0,0 +1,12 @@ +namespace _566._Reshape_the_Matrix +{ + internal class Program + { + static void Main(string[] args) + { + var res = new Solution().MatrixReshape(new int[][] { new int[] { 1,2 }, new int[] { 4, 5 } }, 2, 4); + foreach(var row in res) + Console.WriteLine(String.Join(" ", row)); + } + } +} \ No newline at end of file diff --git a/566. Reshape the Matrix/Solution.cs b/566. Reshape the Matrix/Solution.cs new file mode 100644 index 0000000..fa6359d --- /dev/null +++ b/566. Reshape the Matrix/Solution.cs @@ -0,0 +1,27 @@ +namespace _566._Reshape_the_Matrix; + +public class Solution +{ + public int[][] MatrixReshape(int[][] mat, int r, int c) + { + int[][] result = new int[r][]; + for (int i = 0; i < result.Length; i++) + result[i] = new int[c]; + + int height = mat.Length; + int width = mat[0].Length; + int size = r * c; + if (size != height * width) + return mat; + for(int i = 0; i < size; i++) + { + int ySource = i / width; + int xSource = i % width; + + int yTo = i / c; + int xTo = i % c; + result[yTo][xTo] = mat[ySource][xSource]; + } + return result; + } +} \ No newline at end of file diff --git a/876. Middle of the Linked List/876. Middle of the Linked List.csproj b/876. Middle of the Linked List/876. Middle of the Linked List.csproj new file mode 100644 index 0000000..dc9cda3 --- /dev/null +++ b/876. Middle of the Linked List/876. Middle of the Linked List.csproj @@ -0,0 +1,11 @@ + + + + Exe + net6.0 + _876._Middle_of_the_Linked_List + enable + enable + + + diff --git a/876. Middle of the Linked List/ListNode.cs b/876. Middle of the Linked List/ListNode.cs new file mode 100644 index 0000000..dfe4894 --- /dev/null +++ b/876. Middle of the Linked List/ListNode.cs @@ -0,0 +1,37 @@ +namespace _876._Middle_of_the_Linked_List; + +//Definition for singly-linked list. +public class ListNode +{ + public int val; + public ListNode? next; + public ListNode(int val = 0, ListNode? next = null) + { + this.val = val; + this.next = next; + } + + public static ListNode Create(int[] nums) + { + ListNode l = new ListNode(nums[0]); + ListNode cur = l; + for (int i = 1; i < nums.Length; i++) + { + cur.next = new ListNode(nums[i]); + cur = cur.next; + } + return l; + } + + public override string ToString() + { + List list = new List(); + ListNode? cur = this; + while (cur != null) + { + list.Add(cur.val); + cur = cur.next; + } + return String.Join(" ", list); + } +} diff --git a/876. Middle of the Linked List/Program.cs b/876. Middle of the Linked List/Program.cs new file mode 100644 index 0000000..072856e --- /dev/null +++ b/876. Middle of the Linked List/Program.cs @@ -0,0 +1,13 @@ +namespace _876._Middle_of_the_Linked_List +{ + internal class Program + { + static void Main(string[] args) + { + var l1 = ListNode.Create(new int[] { 1,2,3,4,5}); + var l2 = ListNode.Create(new int[] { 1,2,3,4,5,6}); + Console.WriteLine(new Solution().MiddleNode(l1).val); + Console.WriteLine(new Solution().MiddleNode(l2).val); + } + } +} \ No newline at end of file diff --git a/876. Middle of the Linked List/Solution.cs b/876. Middle of the Linked List/Solution.cs new file mode 100644 index 0000000..5ec21b1 --- /dev/null +++ b/876. Middle of the Linked List/Solution.cs @@ -0,0 +1,15 @@ +namespace _876._Middle_of_the_Linked_List; + +public class Solution +{ + public ListNode MiddleNode(ListNode? head) + { + ListNode result = head!; + while(head?.next != null) + { + head = head?.next?.next; + result = result!.next!; + } + return result; + } +} diff --git a/977. Squares of a Sorted Array/977. Squares of a Sorted Array.csproj b/977. Squares of a Sorted Array/977. Squares of a Sorted Array.csproj new file mode 100644 index 0000000..2ca76d2 --- /dev/null +++ b/977. Squares of a Sorted Array/977. Squares of a Sorted Array.csproj @@ -0,0 +1,11 @@ + + + + Exe + net6.0 + _977._Squares_of_a_Sorted_Array + enable + enable + + + diff --git a/977. Squares of a Sorted Array/Program.cs b/977. Squares of a Sorted Array/Program.cs new file mode 100644 index 0000000..7ea5d78 --- /dev/null +++ b/977. Squares of a Sorted Array/Program.cs @@ -0,0 +1,11 @@ +namespace _977._Squares_of_a_Sorted_Array +{ + internal class Program + { + static void Main(string[] args) + { + var res = new Solution().SortedSquares(new int[] { -7, -2,-1 }); + Console.WriteLine(String.Join(" ", res)); + } + } +} \ No newline at end of file diff --git a/977. Squares of a Sorted Array/Solution.cs b/977. Squares of a Sorted Array/Solution.cs new file mode 100644 index 0000000..b69ae1b --- /dev/null +++ b/977. Squares of a Sorted Array/Solution.cs @@ -0,0 +1,49 @@ +namespace _977._Squares_of_a_Sorted_Array; + +public class Solution +{ + public int[] SortedSquares(int[] nums) + { + int[] res = new int[nums.Length]; + int firstNonNegative = -1; + for(int i = 0; i < nums.Length; i++) + { + if (nums[i] >= 0) + { + firstNonNegative = i; + break; + } + } + + int resIndex = 0; + int positiveIndex = firstNonNegative; + int negativeIndex = firstNonNegative!=-1 ? positiveIndex - 1 : nums.Length-1; + while(resIndex < nums.Length) + { + if(negativeIndex>=0 && positiveIndex < nums.Length && positiveIndex>=0) + { + if (nums[negativeIndex]*-1 < nums[positiveIndex]) + { + res[resIndex++] = nums[negativeIndex] * nums[negativeIndex]; + negativeIndex--; + } + else + { + res[resIndex++] = nums[positiveIndex] * nums[positiveIndex]; + positiveIndex++; + } + } + else if(negativeIndex >= 0) + { + res[resIndex++] = nums[negativeIndex]* nums[negativeIndex]; + negativeIndex--; + } + else if(positiveIndex >= 0) + { + res[resIndex++] = nums[positiveIndex] * nums[positiveIndex]; + positiveIndex++; + } + } + return res; + } +} \ No newline at end of file diff --git a/Leetcode.sln b/Leetcode.sln index c498d02..80d2b4d 100644 --- a/Leetcode.sln +++ b/Leetcode.sln @@ -25,13 +25,25 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "121. Best Time to Buy and S EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "21. Merge Two Sorted Lists", "21. Merge Two Sorted Lists\21. Merge Two Sorted Lists.csproj", "{3063143F-AAF9-4B23-8D98-A7236E01AA27}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "206. Reverse Linked List", "206. Reverse Linked List\206. Reverse Linked List.csproj", "{1C1BEA62-325F-48F8-8CC0-D5828A62F14F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "206. Reverse Linked List", "206. Reverse Linked List\206. Reverse Linked List.csproj", "{1C1BEA62-325F-48F8-8CC0-D5828A62F14F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "704. Binary Search", "704. Binary Search\704. Binary Search.csproj", "{69081812-D523-4211-AE09-9DAF8E9B83D8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "704. Binary Search", "704. Binary Search\704. Binary Search.csproj", "{69081812-D523-4211-AE09-9DAF8E9B83D8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "278. First Bad Version", "278. First Bad Version\278. First Bad Version.csproj", "{3BA31E13-3748-4C4A-BE68-24D2E3DF0DC1}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "278. First Bad Version", "278. First Bad Version\278. First Bad Version.csproj", "{3BA31E13-3748-4C4A-BE68-24D2E3DF0DC1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "35. Search Insert Position", "35. Search Insert Position\35. Search Insert Position.csproj", "{B595BB51-666D-4E39-86EE-F9A3B8D8DA58}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "35. Search Insert Position", "35. Search Insert Position\35. Search Insert Position.csproj", "{B595BB51-666D-4E39-86EE-F9A3B8D8DA58}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "876. Middle of the Linked List", "876. Middle of the Linked List\876. Middle of the Linked List.csproj", "{2510B3B5-87EE-44AB-A2A7-BCAE9E6E91C6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "566. Reshape the Matrix", "566. Reshape the Matrix\566. Reshape the Matrix.csproj", "{DD4A53CF-D840-48BF-8F8F-33E39D492BD3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "118. Pascal's Triangle", "118. Pascal's Triangle\118. Pascal's Triangle.csproj", "{E1BB66AE-E4E6-441F-9B5C-1B7FFDF7912C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "977. Squares of a Sorted Array", "977. Squares of a Sorted Array\977. Squares of a Sorted Array.csproj", "{F0B9DD20-6230-4381-8814-072C2E159624}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "189. Rotate Array", "189. Rotate Array\189. Rotate Array.csproj", "{CAF5FFD6-9598-412D-8569-EB62136D34C8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "142. Linked List Cycle II", "142. Linked List Cycle II\142. Linked List Cycle II.csproj", "{EBA96217-EAD0-456C-B1C6-79A7A227ED0A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -99,6 +111,30 @@ Global {B595BB51-666D-4E39-86EE-F9A3B8D8DA58}.Debug|Any CPU.Build.0 = Debug|Any CPU {B595BB51-666D-4E39-86EE-F9A3B8D8DA58}.Release|Any CPU.ActiveCfg = Release|Any CPU {B595BB51-666D-4E39-86EE-F9A3B8D8DA58}.Release|Any CPU.Build.0 = Release|Any CPU + {2510B3B5-87EE-44AB-A2A7-BCAE9E6E91C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2510B3B5-87EE-44AB-A2A7-BCAE9E6E91C6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2510B3B5-87EE-44AB-A2A7-BCAE9E6E91C6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2510B3B5-87EE-44AB-A2A7-BCAE9E6E91C6}.Release|Any CPU.Build.0 = Release|Any CPU + {DD4A53CF-D840-48BF-8F8F-33E39D492BD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD4A53CF-D840-48BF-8F8F-33E39D492BD3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD4A53CF-D840-48BF-8F8F-33E39D492BD3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD4A53CF-D840-48BF-8F8F-33E39D492BD3}.Release|Any CPU.Build.0 = Release|Any CPU + {E1BB66AE-E4E6-441F-9B5C-1B7FFDF7912C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E1BB66AE-E4E6-441F-9B5C-1B7FFDF7912C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E1BB66AE-E4E6-441F-9B5C-1B7FFDF7912C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E1BB66AE-E4E6-441F-9B5C-1B7FFDF7912C}.Release|Any CPU.Build.0 = Release|Any CPU + {F0B9DD20-6230-4381-8814-072C2E159624}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F0B9DD20-6230-4381-8814-072C2E159624}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F0B9DD20-6230-4381-8814-072C2E159624}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F0B9DD20-6230-4381-8814-072C2E159624}.Release|Any CPU.Build.0 = Release|Any CPU + {CAF5FFD6-9598-412D-8569-EB62136D34C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CAF5FFD6-9598-412D-8569-EB62136D34C8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CAF5FFD6-9598-412D-8569-EB62136D34C8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CAF5FFD6-9598-412D-8569-EB62136D34C8}.Release|Any CPU.Build.0 = Release|Any CPU + {EBA96217-EAD0-456C-B1C6-79A7A227ED0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EBA96217-EAD0-456C-B1C6-79A7A227ED0A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EBA96217-EAD0-456C-B1C6-79A7A227ED0A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EBA96217-EAD0-456C-B1C6-79A7A227ED0A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE