#ifndef PYTHON_CONSOLE_UTILS_H #define PYTHON_CONSOLE_UTILS_H #include #include /** InputIterator has value type of std::string. */ template < class InputIterator > std::string LongestCommonPrefix( InputIterator begin, InputIterator end ) { if ( begin == end ) return ""; const std::string& str0 = *begin; if ( ! str0.size() ) return ""; int endIndex = str0.size() - 1; InputIterator it = begin; ++it; for (; it != end; ++it) { const std::string& str = *it; for (int j = 0; j <= endIndex; ++j) { if (j >= (int)str.size() || str[j] != str0[j]) endIndex = j - 1; } } return (endIndex > 0)? str0.substr(0, endIndex + 1) : ""; } #endif // PYTHON_CONSOLE_UTILS_H 08dc3e49838'/> xenJames
aboutsummaryrefslogtreecommitdiffstats
blob: 59fd244536be8c5e60f2ed8aedc9fcd753792087 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111