Can someone please explain this line I can’t visualize what’s happening in this.
ans = string(1, s[i]) + string(1, s[i + 1]);
code link- Problem - B - Codeforces
cin >> n;
string s;
cin >> s;
int res = 0;
string ans;
for (int i = 0; i < n - 1; ++i) {
int cur = 0;
for (int j = 0; j < n - 1; ++j)
if (s[j] == s[i] && s[j + 1] == s[i + 1])
++cur;
if (res < cur) {
res = cur;
ans = string(1, s[i]) + string(1, s[i + 1]);
}
}
cout << ans << endl;
1 Like
There are multiple ways to declare a string.
string a creates an empty string “”.
string(4,'e') creates a string “eeee”.
string(1,'b') creates a string “b”.
Similarly, string(1, s[i]) + string(1, s[i+1]) is just s[i] and s[i+1] concatenated. Note that you cannot simply use the + operation on s[i] and s[i+1] because they are characters and + does not concatenate characters.
[EDIT] Another alternative to this is to_string(s[i]) + to_string(s[i+1]).
3 Likes
thank you so much sir. i learned something new. thank you explaining the code
Hey Hey! Please don’t call me sir. I’m just a fellow coder like you. Glad I could help
.