Bold Words in String
Thoughts
Code
class Solution {
public String boldWords(String[] words, String S) {
int n = S.length();
boolean[] mark = new boolean[n];
for (String word : words) {
for (int i = 0; i <= n - word.length(); i++) {
if (S.substring(i, i + word.length()).equals(word)) {
for (int j = i; j < i + word.length(); j++) {
mark[j] = true;
}
}
}
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < n; i++) {
if (mark[i] && (i == 0 || !mark[i - 1])) {
sb.append("<b>");
}
if (i > 0 && !mark[i] && mark[i - 1]) {
sb.append("</b>");
}
sb.append(S.charAt(i));
}
if (mark[n - 1]) {
sb.append("</b>");
}
return sb.toString();
}
}Analysis
Last updated