class Solution:
def longestCommonPrefix(self, strs):
result = []
for i in zip(*strs):
if len(set(i)) != 1:
break
result.append(i[0])
return "".join(result)
"""The zip() method returns a zip object, which is an iterator of tuples where
the first item in each passed iterator is paired together, and then the second item in
each passed iterator are paired together etc.
If the passed iterators have different lengths, the iterator with the least items
decides the length of the new iterator.
set() method is used to convert any of the iterable to sequence of iterable elements
with distinct elements, commonly called Set.
"""
Task = Solution()
print("3a. ",Task.longestCommonPrefix(["flower","flow","flight"]))
print("3b. ",Task.longestCommonPrefix(["dog","racecar","car"]))
class Solution:
def longestCommonPrefix(self, strs):
result = ""
for i in range(len(strs[0])): # Pick any word in the list and loop through its length. Thats the number of times youre to loop thu the list
# because your answer cant be longer in length than any word in the list
for word in strs: # loop through the words in the the list so you can use the word[i] to acces the letters of each word
if i == len(word) or word[i] != strs[0][i]: # stop code by returning result if loop count(i) is same as length of your chosen word
return result # or if theres no more similar between other words and your chosen word
result = result + strs[0][i] # otherwise keep adding the similar letters that occur in same position in all the words to the result
Task = Solution()
print(Task.longestCommonPrefix(["flower","flow","flight"]))
print(Task.longestCommonPrefix(["dog","racecar","car"]))
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
}
};
class Solution {
public String longestCommonPrefix(String[] strs) {
}
}
char * longestCommonPrefix(char ** strs, int strsSize){
}
public class Solution {
public string LongestCommonPrefix(string[] strs) {
}
}
/**
* @param {string[]} strs
* @return {string}
*/
var longestCommonPrefix = function(strs) {
};
# @param {String[]} strs
# @return {String}
def longest_common_prefix(strs)
end
class Solution {
func longestCommonPrefix(_ strs: [String]) -> String {
}
}
class Solution {
/**
* @param String[] $strs
* @return String
*/
function longestCommonPrefix($strs) {
}
}
function longestCommonPrefix(strs: string[]): string {
};
// CPP program to find length of the longest
// prefix which is also suffix
#include <bits/stdc++.h>
using namespace std;
// Function to find largest prefix which is also a suffix
int largest_prefix_suffix(const std::string &str) {
int n = str.length();
if(n < 2) {
return 0;
}
int len = 0;
int i = n/2;
while(i < n) {
if(str[i] == str[len]) {
++len;
++i;
} else {
if(len == 0) { // no prefix
++i;
} else { // search for shorter prefixes
--len;
}
}
}
return len;
}
// Driver code
int main() {
string s = "blablabla";
cout << largest_prefix_suffix(s);
return 0;
}