3.22美团笔试后台开发字符串比较java

public class StringCompare /*  简洁的讲问题核心为维护以T.length为长的在S中滑动窗口中a,b数目  */ { public static void main(String... args) {
        String S = "aaabb";
        String T = "bab"; int m = S.length(); int n = T.length(); int a = 0; int b = 0; for (int i = 0; i < m - n + 1; i++) { if (S.charAt(i) == 'a')
                a++; else b++;
        } int sum = 0; for (int i = 0; i < n; i++) { if (T.charAt(i) == 'a')
                sum += b; else sum += a; if (i + m - n + 1 < m && S.charAt(i) != S.charAt(i + m - n + 1)) { if (S.charAt(i) == 'a') {
                    a--;
                    b++;
                } else {
                    a++;
                    b--;
                }
            }
        }
        System.out.println(sum);
    }
}
代码可能写的比较丑参考别人的思路,直接看代码也更容易懂,核心是以T中每一个字母为对象,预先确定它和S中哪个范围内(滑动窗口)的字符串作比较,统计窗口内a,b数目,
遍历T中字母时只需要更新S对应窗口中a,b数目就行了,这样每次遍历T中元素都用到了除去上次窗口首尾中a,b数目
#笔试题目##春招#
全部评论

相关推荐

嵌入式小辣鸡:包装好一点,校内的奖项可以不用写,校内项目经历最后两点写的太差了,详细讲一下内容,名字变一下。只需要写项目实现了什么,自己在其中做了什么就好,查看图片
点赞 评论 收藏
分享
自由水:这HR已经很好了,多的是已读不回和不读了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务