616. Add Bold Tag in String

2022/4/14 6:15:06

本文主要是介绍616. Add Bold Tag in String,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

This is a merge interval's variety:

class Solution {
    public String addBoldTag(String s, String[] words) {
        List<int[]> intervals = new ArrayList<>();
        for(int i=0;i<s.length();i++){
            for(String word: words){
                if(s.startsWith(word, i)){
                    intervals.add(new int[]{i, i+word.length()});
                }
            }
        }
        intervals = merge(intervals);
        StringBuilder res = new StringBuilder();
        int index =0;
        for(int[] interval: intervals){
            int x = interval[0];
            int y = interval[1];
            res.append(s.substring(index, x));
            res.append("<b>");
            res.append(s.substring(x, y));
            res.append("</b>");
            index = y;
        }
        res.append(s.substring(index));
        return res.toString();
    }
    
    private List<int[]> merge(List<int[]> intervals){
        List<int[]> res = new ArrayList<>();
        if(intervals.size()==0)
            return res;
        
        int[] inter1 = intervals.get(0);
        for(int i=1;i<intervals.size();i++){
            int[] inter2 = intervals.get(i);
            if(inter1[1]>=inter2[0]){
                int x = Math.min(inter1[0], inter2[0]);
                int y = Math.max(inter1[1], inter2[1]);
                int[] newInterval = new int[]{x, y};
                inter1 = newInterval;
            }else{
                res.add(inter1);
                inter1= inter2;
            }
        }
        res.add(inter1);
        return res;
    }
}

 



这篇关于616. Add Bold Tag in String的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程