diff --git a/README.md b/README.md index 5e8dd1a..fbe20ea 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -

Python practical zone

+

Python practical zone, not only for Python

@@ -6,16 +6,3 @@

Project status

-

- Problem-driven and individualized - - Fun - - Safe from failure - - Group engagement -

-

Python is a widely used high-level, general-purpose, interpreted, dynamic programming language. Its design philosophy emphasizes code readability, and its syntax allows programmers to express concepts in fewer lines of code than possible in languages such as C++ or Java. - -Python supports multiple programming paradigms, including object-oriented, imperative and functional programming or procedural styles. It features a dynamic type system and automatic memory management and has a large and comprehensive standard library - -The best way we learn anything is by practice and exercise questions. We have started this section for those (beginner to intermediate) who are familiar with Python. - -Hope, these exercises help you to improve your Python coding skills. Currently, following sections are available, we are working hard to add more exercises .... Happy Coding!

diff --git a/Basic-Part-1/questions/qn_1.txt b/archives/Basic-Part-1/questions/qn_1.txt similarity index 100% rename from Basic-Part-1/questions/qn_1.txt rename to archives/Basic-Part-1/questions/qn_1.txt diff --git a/Basic-Part-1/questions/qn_10.txt b/archives/Basic-Part-1/questions/qn_10.txt similarity index 70% rename from Basic-Part-1/questions/qn_10.txt rename to archives/Basic-Part-1/questions/qn_10.txt index 1ddab36..52a3234 100644 --- a/Basic-Part-1/questions/qn_10.txt +++ b/archives/Basic-Part-1/questions/qn_10.txt @@ -3,3 +3,6 @@ Sample value of n is 5 Expected Result : 615 + +n=int (input("Enter a number") +print(n+(n*n)+(n*n*n)). diff --git a/Basic-Part-1/questions/qn_11.txt b/archives/Basic-Part-1/questions/qn_11.txt similarity index 100% rename from Basic-Part-1/questions/qn_11.txt rename to archives/Basic-Part-1/questions/qn_11.txt diff --git a/Basic-Part-1/questions/qn_12.txt b/archives/Basic-Part-1/questions/qn_12.txt similarity index 100% rename from Basic-Part-1/questions/qn_12.txt rename to archives/Basic-Part-1/questions/qn_12.txt diff --git a/Basic-Part-1/questions/qn_13.txt b/archives/Basic-Part-1/questions/qn_13.txt similarity index 100% rename from Basic-Part-1/questions/qn_13.txt rename to archives/Basic-Part-1/questions/qn_13.txt diff --git a/Basic-Part-1/questions/qn_14.txt b/archives/Basic-Part-1/questions/qn_14.txt similarity index 100% rename from Basic-Part-1/questions/qn_14.txt rename to archives/Basic-Part-1/questions/qn_14.txt diff --git a/Basic-Part-1/questions/qn_15.txt b/archives/Basic-Part-1/questions/qn_15.txt similarity index 100% rename from Basic-Part-1/questions/qn_15.txt rename to archives/Basic-Part-1/questions/qn_15.txt diff --git a/Basic-Part-1/questions/qn_16.py b/archives/Basic-Part-1/questions/qn_16.py similarity index 100% rename from Basic-Part-1/questions/qn_16.py rename to archives/Basic-Part-1/questions/qn_16.py diff --git a/Basic-Part-1/questions/qn_17.txt b/archives/Basic-Part-1/questions/qn_17.txt similarity index 100% rename from Basic-Part-1/questions/qn_17.txt rename to archives/Basic-Part-1/questions/qn_17.txt diff --git a/Basic-Part-1/questions/qn_18.py b/archives/Basic-Part-1/questions/qn_18.py similarity index 100% rename from Basic-Part-1/questions/qn_18.py rename to archives/Basic-Part-1/questions/qn_18.py diff --git a/Basic-Part-1/questions/qn_18.txt b/archives/Basic-Part-1/questions/qn_18.txt similarity index 100% rename from Basic-Part-1/questions/qn_18.txt rename to archives/Basic-Part-1/questions/qn_18.txt diff --git a/Basic-Part-1/questions/qn_19.txt b/archives/Basic-Part-1/questions/qn_19.txt similarity index 100% rename from Basic-Part-1/questions/qn_19.txt rename to archives/Basic-Part-1/questions/qn_19.txt diff --git a/Basic-Part-1/questions/qn_2.txt b/archives/Basic-Part-1/questions/qn_2.txt similarity index 100% rename from Basic-Part-1/questions/qn_2.txt rename to archives/Basic-Part-1/questions/qn_2.txt diff --git a/Basic-Part-1/questions/qn_20.txt b/archives/Basic-Part-1/questions/qn_20.txt similarity index 100% rename from Basic-Part-1/questions/qn_20.txt rename to archives/Basic-Part-1/questions/qn_20.txt diff --git a/Basic-Part-1/questions/qn_21.txt b/archives/Basic-Part-1/questions/qn_21.txt similarity index 100% rename from Basic-Part-1/questions/qn_21.txt rename to archives/Basic-Part-1/questions/qn_21.txt diff --git a/Basic-Part-1/questions/qn_22.txt b/archives/Basic-Part-1/questions/qn_22.txt similarity index 100% rename from Basic-Part-1/questions/qn_22.txt rename to archives/Basic-Part-1/questions/qn_22.txt diff --git a/Basic-Part-1/questions/qn_23.txt b/archives/Basic-Part-1/questions/qn_23.txt similarity index 100% rename from Basic-Part-1/questions/qn_23.txt rename to archives/Basic-Part-1/questions/qn_23.txt diff --git a/Basic-Part-1/questions/qn_24.txt b/archives/Basic-Part-1/questions/qn_24.txt similarity index 100% rename from Basic-Part-1/questions/qn_24.txt rename to archives/Basic-Part-1/questions/qn_24.txt diff --git a/Basic-Part-1/questions/qn_25.txt b/archives/Basic-Part-1/questions/qn_25.txt similarity index 100% rename from Basic-Part-1/questions/qn_25.txt rename to archives/Basic-Part-1/questions/qn_25.txt diff --git a/archives/Basic-Part-1/questions/qn_26.txt b/archives/Basic-Part-1/questions/qn_26.txt new file mode 100644 index 0000000..bd03cec --- /dev/null +++ b/archives/Basic-Part-1/questions/qn_26.txt @@ -0,0 +1,22 @@ +Calculate the multiplication and sum of two numbers + +Given two integer numbers return their product only if the product is greater than 1000, else return their sum. + +Given 1: + +number1 = 20 +number2 = 30 + +Expected Output: + +The result is 600 + +Given 2: + +number1 = 40 +number2 = 30 + +Expected Output: + +The result is 70 + diff --git a/archives/Basic-Part-1/questions/qn_27.txt b/archives/Basic-Part-1/questions/qn_27.txt new file mode 100644 index 0000000..06a9258 --- /dev/null +++ b/archives/Basic-Part-1/questions/qn_27.txt @@ -0,0 +1,8 @@ +What is the output of the following code? + + +first = [1, 2, 3, 4, 5] +second = first +second.append(6) +print(first) +print(second) diff --git a/archives/Basic-Part-1/questions/qn_28.txt b/archives/Basic-Part-1/questions/qn_28.txt new file mode 100644 index 0000000..bbe0d21 --- /dev/null +++ b/archives/Basic-Part-1/questions/qn_28.txt @@ -0,0 +1,5 @@ +Python List Slicing Using Negative Indexing +What is the output of the following Python code snippet? + +a = [1,2,3,4,5,6,7,8,9] +print(a[-1:-5]) diff --git a/archives/Basic-Part-1/questions/qn_29.txt b/archives/Basic-Part-1/questions/qn_29.txt new file mode 100644 index 0000000..a48681f --- /dev/null +++ b/archives/Basic-Part-1/questions/qn_29.txt @@ -0,0 +1,11 @@ +Tuple and String Type +Here is the code snippet. You have to find the type of the given three objects. + +A = ("Python" , "Java") +print(type(A)) + +B = ("Python", ) +print(type(B)) + +C = ("Python") +print(type(C)) diff --git a/Basic-Part-1/questions/qn_3.txt b/archives/Basic-Part-1/questions/qn_3.txt similarity index 100% rename from Basic-Part-1/questions/qn_3.txt rename to archives/Basic-Part-1/questions/qn_3.txt diff --git a/archives/Basic-Part-1/questions/qn_30.txt b/archives/Basic-Part-1/questions/qn_30.txt new file mode 100644 index 0000000..5acdb4a --- /dev/null +++ b/archives/Basic-Part-1/questions/qn_30.txt @@ -0,0 +1,18 @@ +Differentiating List extend() Method +What is the output of print statements 1 and 2 in the following code snippet?. + +listA = [1, 2, 3] +def funcA(listA): + listA = listA * 2 + return None + +funcA(listA) +print(listA) # print Statement 1 + +listB = [1, 2, 3] +def funcB(listB): + listB=listB.extend([1, 2, 3]) + return None + +funcB(listB) +print(listB) # print Statement 2 diff --git a/Basic-Part-1/questions/qn_4.txt b/archives/Basic-Part-1/questions/qn_4.txt similarity index 100% rename from Basic-Part-1/questions/qn_4.txt rename to archives/Basic-Part-1/questions/qn_4.txt diff --git a/Basic-Part-1/questions/qn_5.txt b/archives/Basic-Part-1/questions/qn_5.txt similarity index 100% rename from Basic-Part-1/questions/qn_5.txt rename to archives/Basic-Part-1/questions/qn_5.txt diff --git a/Basic-Part-1/questions/qn_6.txt b/archives/Basic-Part-1/questions/qn_6.txt similarity index 100% rename from Basic-Part-1/questions/qn_6.txt rename to archives/Basic-Part-1/questions/qn_6.txt diff --git a/Basic-Part-1/questions/qn_7.txt b/archives/Basic-Part-1/questions/qn_7.txt similarity index 100% rename from Basic-Part-1/questions/qn_7.txt rename to archives/Basic-Part-1/questions/qn_7.txt diff --git a/Basic-Part-1/questions/qn_8.txt b/archives/Basic-Part-1/questions/qn_8.txt similarity index 100% rename from Basic-Part-1/questions/qn_8.txt rename to archives/Basic-Part-1/questions/qn_8.txt diff --git a/Basic-Part-1/questions/qn_9.txt b/archives/Basic-Part-1/questions/qn_9.txt similarity index 100% rename from Basic-Part-1/questions/qn_9.txt rename to archives/Basic-Part-1/questions/qn_9.txt diff --git a/archives/Basic-Part-1/source-code/Ans_qn_27.txt b/archives/Basic-Part-1/source-code/Ans_qn_27.txt new file mode 100644 index 0000000..8196e7c --- /dev/null +++ b/archives/Basic-Part-1/source-code/Ans_qn_27.txt @@ -0,0 +1,26 @@ +[1, 2, 3, 4, 5, 6] +[1, 2, 3, 4, 5, 6] + +Explanation: + +You are appending a new element to the second list. Then, why do you see a new element even in the first list? + +This is really confusing. + +Here is actual fact. + +The code line “second = first ” creates the shallow copy of the list. It means there will be a single list in memory. The first and second variables are pointed to the same list.It does not maintain two separate lists, but only one. If you modify using one list variable, it will make the changes in the list for both variables. +If you want to maintain two separate lists for two list objects, you need to create a deep copy of the list. Refer a shallow and deep copy You can also print the identity of the objects (first and second) using id() inbuilt function. + +Python + +first = [1, 2, 3, 4, 5] +second = first +print(id(second)) +print(id(first)) + + +Output: + +140683246201032 +140683246201032 diff --git a/archives/Basic-Part-1/source-code/Ans_qn_29.txt b/archives/Basic-Part-1/source-code/Ans_qn_29.txt new file mode 100644 index 0000000..bbf5b20 --- /dev/null +++ b/archives/Basic-Part-1/source-code/Ans_qn_29.txt @@ -0,0 +1,16 @@ +Output: + + + + +Explanation: + +These objects are classified into different data types. + +tuple- It stores the element just like an array. (It is slightly different from list.) +str- it is a string that is a set of characters. +Let’s take a scenario one by one. + +Object ‘A’ is a tuple. It’s very clear from its syntax. +Object ‘B’ is again tuple. Despite having only one string, it has comma ‘,’ after the string. So it can not be a string. +Object ‘C’ is a string. It has only one string though it has enclosed inside the brackets. So, Python considers it as a string. diff --git a/Basic-Part-1/source-code/qn_1.py b/archives/Basic-Part-1/source-code/qn_1.py similarity index 100% rename from Basic-Part-1/source-code/qn_1.py rename to archives/Basic-Part-1/source-code/qn_1.py diff --git a/Basic-Part-1/source-code/qn_18.py b/archives/Basic-Part-1/source-code/qn_18.py similarity index 100% rename from Basic-Part-1/source-code/qn_18.py rename to archives/Basic-Part-1/source-code/qn_18.py diff --git a/Basic-Part-1/source-code/qn_2.py b/archives/Basic-Part-1/source-code/qn_2.py similarity index 100% rename from Basic-Part-1/source-code/qn_2.py rename to archives/Basic-Part-1/source-code/qn_2.py diff --git a/archives/Basic-Part-1/source-code/qn_26.txt b/archives/Basic-Part-1/source-code/qn_26.txt new file mode 100644 index 0000000..f4f4fbc --- /dev/null +++ b/archives/Basic-Part-1/source-code/qn_26.txt @@ -0,0 +1,17 @@ +def multiplication_or_sum(num1, num2): + # calculate product of two number + product = num1 * num2 + # check if product is less then 1000 + if product <= 1000: + return product + else: + # product is greater than 1000 calculate sum + return num1 + num2 + +# first condition +result = multiplication_or_sum(20, 30) +print("The result is", result) + +# Second condition +result = multiplication_or_sum(40, 30) +print("The result is", result) diff --git a/Basic-Part-1/source-code/qn_3.py b/archives/Basic-Part-1/source-code/qn_3.py similarity index 100% rename from Basic-Part-1/source-code/qn_3.py rename to archives/Basic-Part-1/source-code/qn_3.py diff --git a/Basic-Part-1/source-code/qn_4.py b/archives/Basic-Part-1/source-code/qn_4.py similarity index 100% rename from Basic-Part-1/source-code/qn_4.py rename to archives/Basic-Part-1/source-code/qn_4.py diff --git a/Basic-Part-1/source-code/qn_5.py b/archives/Basic-Part-1/source-code/qn_5.py similarity index 100% rename from Basic-Part-1/source-code/qn_5.py rename to archives/Basic-Part-1/source-code/qn_5.py diff --git a/Basic-Part-1/source-code/qn_6.py b/archives/Basic-Part-1/source-code/qn_6.py similarity index 100% rename from Basic-Part-1/source-code/qn_6.py rename to archives/Basic-Part-1/source-code/qn_6.py diff --git a/Basic-Part-1/source-code/qn_7.py b/archives/Basic-Part-1/source-code/qn_7.py similarity index 100% rename from Basic-Part-1/source-code/qn_7.py rename to archives/Basic-Part-1/source-code/qn_7.py diff --git a/Basic-Part-1/source-code/qn_8.py b/archives/Basic-Part-1/source-code/qn_8.py similarity index 100% rename from Basic-Part-1/source-code/qn_8.py rename to archives/Basic-Part-1/source-code/qn_8.py diff --git a/Basic-Part-2/questions/qn_1.txt b/archives/Basic-Part-2/questions/qn_1.txt similarity index 100% rename from Basic-Part-2/questions/qn_1.txt rename to archives/Basic-Part-2/questions/qn_1.txt diff --git a/Basic-Part-2/questions/qn_2.txt b/archives/Basic-Part-2/questions/qn_2.txt similarity index 100% rename from Basic-Part-2/questions/qn_2.txt rename to archives/Basic-Part-2/questions/qn_2.txt diff --git a/Basic-Part-2/questions/qn_25.txt b/archives/Basic-Part-2/questions/qn_25.txt similarity index 100% rename from Basic-Part-2/questions/qn_25.txt rename to archives/Basic-Part-2/questions/qn_25.txt diff --git a/Basic-Part-2/questions/qn_26.txt b/archives/Basic-Part-2/questions/qn_26.txt similarity index 100% rename from Basic-Part-2/questions/qn_26.txt rename to archives/Basic-Part-2/questions/qn_26.txt diff --git a/Basic-Part-2/questions/qn_27.txt b/archives/Basic-Part-2/questions/qn_27.txt similarity index 100% rename from Basic-Part-2/questions/qn_27.txt rename to archives/Basic-Part-2/questions/qn_27.txt diff --git a/archives/Basic-Part-2/questions/qn_28.txt b/archives/Basic-Part-2/questions/qn_28.txt new file mode 100644 index 0000000..5dfc3e6 --- /dev/null +++ b/archives/Basic-Part-2/questions/qn_28.txt @@ -0,0 +1,11 @@ +You are in charge of the cake for a child's birthday. You have decided the cake will have one candle for each year of their total age. They will only be able to blow out the tallest of the candles. Count how many candles are tallest. + +Example +candles = [4,4,1,3] +The maximum height candles are 4 units high. There are 2 of them, so return 2. + +birthdayCakeCandles has the following parameter(s): +1. int candles[n]: the candle heights + +Returns: +int: the number of candles that are tallest \ No newline at end of file diff --git a/Basic-Part-2/questions/qn_3 b/archives/Basic-Part-2/questions/qn_3 similarity index 100% rename from Basic-Part-2/questions/qn_3 rename to archives/Basic-Part-2/questions/qn_3 diff --git a/Basic-Part-2/questions/qn_3.txt b/archives/Basic-Part-2/questions/qn_3.txt similarity index 100% rename from Basic-Part-2/questions/qn_3.txt rename to archives/Basic-Part-2/questions/qn_3.txt diff --git a/Basic-Part-2/questions/qn_4.txt b/archives/Basic-Part-2/questions/qn_4.txt similarity index 100% rename from Basic-Part-2/questions/qn_4.txt rename to archives/Basic-Part-2/questions/qn_4.txt diff --git a/Basic-Part-2/questions/qn_5.txt b/archives/Basic-Part-2/questions/qn_5.txt similarity index 100% rename from Basic-Part-2/questions/qn_5.txt rename to archives/Basic-Part-2/questions/qn_5.txt diff --git a/Basic-Part-2/questions/qn_6.txt b/archives/Basic-Part-2/questions/qn_6.txt similarity index 75% rename from Basic-Part-2/questions/qn_6.txt rename to archives/Basic-Part-2/questions/qn_6.txt index b3978ee..ef4d709 100644 --- a/Basic-Part-2/questions/qn_6.txt +++ b/archives/Basic-Part-2/questions/qn_6.txt @@ -1 +1,5 @@ Write a Python program to create a lambda function that adds 15 to a given number passed in as an argument, also create a lambda function that multiplies argument x with argument y and print the result. +a = lambda x : x+15 +b = lambda x,y : x*y +print(a(5)) +print(b(2,3)) diff --git a/Basic-Part-2/questions/qn_7.txt b/archives/Basic-Part-2/questions/qn_7.txt similarity index 100% rename from Basic-Part-2/questions/qn_7.txt rename to archives/Basic-Part-2/questions/qn_7.txt diff --git a/archives/Basic-Part-2/questions/question_29 b/archives/Basic-Part-2/questions/question_29 new file mode 100644 index 0000000..af683fa --- /dev/null +++ b/archives/Basic-Part-2/questions/question_29 @@ -0,0 +1,25 @@ +Write a function to find the longest common prefix string amongst an array of strings. + +If there is no common prefix, return an empty string "". + + + +Example 1: + +Input: strs = ["flower","flow","flight"] +Output: "fl" + +Example 2: + +Input: strs = ["dog","racecar","car"] +Output: "" +Explanation: There is no common prefix among the input strings. + + + +Constraints: + + 1 <= strs.length <= 200 + 0 <= strs[i].length <= 200 + strs[i] consists of only lowercase English letters. + diff --git a/Basic-Part-2/source-code/qn_1.py b/archives/Basic-Part-2/source-code/qn_1.py similarity index 100% rename from Basic-Part-2/source-code/qn_1.py rename to archives/Basic-Part-2/source-code/qn_1.py diff --git a/Basic-Part-2/source-code/qn_2.py b/archives/Basic-Part-2/source-code/qn_2.py similarity index 100% rename from Basic-Part-2/source-code/qn_2.py rename to archives/Basic-Part-2/source-code/qn_2.py diff --git a/Basic-Part-2/source-code/qn_25_ans.txt b/archives/Basic-Part-2/source-code/qn_25_ans.txt similarity index 100% rename from Basic-Part-2/source-code/qn_25_ans.txt rename to archives/Basic-Part-2/source-code/qn_25_ans.txt diff --git a/archives/Basic-Part-2/source-code/qn_26_answer.txt b/archives/Basic-Part-2/source-code/qn_26_answer.txt new file mode 100644 index 0000000..ba2d2b6 --- /dev/null +++ b/archives/Basic-Part-2/source-code/qn_26_answer.txt @@ -0,0 +1,15 @@ +The common built in data types in python are- + +Numbers– They include integers, floating point numbers, and complex numbers. eg. 1, 7.9,3+4i + +List– An ordered sequence of items is called a list. The elements of a list may belong to different data types. Eg. [5,’market’,2.4] + +Tuple– It is also an ordered sequence of elements. Unlike lists , tuples are immutable, which means they can’t be changed. Eg. (3,’tool’,1) + +String– A sequence of characters is called a string. They are declared within single or double quotes. Eg. “Sana”, ‘She is going to the market’, etc. + +Set– Sets are a collection of unique items that are not in order. Eg. {7,6,8} + +Dictionary– A dictionary stores values in key and value pairs where each value can be accessed through its key. The order of items is not important. Eg. {1:’apple’,2:’mango} + +Boolean– There are 2 boolean values- True and False. diff --git a/archives/Basic-Part-2/source-code/qn_28.py b/archives/Basic-Part-2/source-code/qn_28.py new file mode 100644 index 0000000..b0f6d31 --- /dev/null +++ b/archives/Basic-Part-2/source-code/qn_28.py @@ -0,0 +1,10 @@ +def birthdayCakeCandles(ar): + c = 0 + temp = ar[0] + for i in range(1,len(ar)): + if ar[i] > temp: + temp = ar[i] + for i in range(0,len(ar)): + if ar[i] == temp: + c = c + 1 + return c \ No newline at end of file diff --git a/Basic-Part-2/source-code/qn_3.py b/archives/Basic-Part-2/source-code/qn_3.py similarity index 100% rename from Basic-Part-2/source-code/qn_3.py rename to archives/Basic-Part-2/source-code/qn_3.py diff --git a/Basic-Part-2/source-code/qn_3_ans.txt b/archives/Basic-Part-2/source-code/qn_3_ans.txt similarity index 100% rename from Basic-Part-2/source-code/qn_3_ans.txt rename to archives/Basic-Part-2/source-code/qn_3_ans.txt diff --git a/Basic-Part-2/source-code/qn_3_solution.py b/archives/Basic-Part-2/source-code/qn_3_solution.py similarity index 100% rename from Basic-Part-2/source-code/qn_3_solution.py rename to archives/Basic-Part-2/source-code/qn_3_solution.py diff --git a/Basic-Part-2/source-code/qn_6_ans.txt b/archives/Basic-Part-2/source-code/qn_6_ans.txt similarity index 100% rename from Basic-Part-2/source-code/qn_6_ans.txt rename to archives/Basic-Part-2/source-code/qn_6_ans.txt diff --git a/Basic-Part-2/source-code/qn_7_ans.txt b/archives/Basic-Part-2/source-code/qn_7_ans.txt similarity index 100% rename from Basic-Part-2/source-code/qn_7_ans.txt rename to archives/Basic-Part-2/source-code/qn_7_ans.txt diff --git a/qn_19.txt b/archives/qn_19.txt similarity index 100% rename from qn_19.txt rename to archives/qn_19.txt diff --git a/problems/1_problem.md b/problems/1_problem.md new file mode 100644 index 0000000..d114c02 --- /dev/null +++ b/problems/1_problem.md @@ -0,0 +1,15 @@ +Write a function to find the longest common prefix string amongst an array of strings. + +If there is no common prefix, return an empty string "". + +Example 1: +``` +Input: strs = ["flower","flow","flight"] +Output: "fl" +``` +Example 2: +``` +Input: strs = ["dog","racecar","car"] +Output: "" +Explanation: There is no common prefix among the input strings. +``` diff --git a/problems/2_problem.md b/problems/2_problem.md new file mode 100644 index 0000000..2da884c --- /dev/null +++ b/problems/2_problem.md @@ -0,0 +1,17 @@ +Write a function to find the longest common prefix string amongst an array of strings. + +If there is no common prefix, return an empty string "". + + + +Example 1: + +Input: strs = ["flower","flow","flight"] +Output: "fl" + +Example 2: + +Input: strs = ["dog","racecar","car"] +Output: "" +Explanation: There is no common prefix among the input strings. + diff --git a/solutions/1_solution.go b/solutions/1_solution.go new file mode 100644 index 0000000..5e1c1c4 --- /dev/null +++ b/solutions/1_solution.go @@ -0,0 +1,43 @@ +package main + +import ( + "fmt" + "strings" +) + +func prefixThere(str []string, pf string) bool { + present := "" + for _, ss := range str { + if !strings.HasPrefix(ss, pf) { + present += "n" + } + } + if strings.Contains(present, "n") { + return false + } + return true +} + +func longestCommonPrefix(strs []string) string { + + longPrefix := "" + firstString := strs[0] + restOfString := strs[1:] + + if len(strs) == 1 { + longPrefix = firstString + } else { + for i := 1; i <= len(firstString); i++ { + prefix := firstString[0:i] + if prefixThere(restOfString, prefix) { + longPrefix = prefix + } + } + } + return longPrefix +} + +func main() { + sSlice := []string{"flower", "flow", "flight"} + fmt.Println(longestCommonPrefix(sSlice)) +} \ No newline at end of file