From ab592a9f3d3730d113fdc883771a74c8cb8abbdc Mon Sep 17 00:00:00 2001 From: xingyou wu <3050128610@qq.com> Date: Wed, 10 Sep 2025 23:05:16 +0800 Subject: [PATCH] =?UTF-8?q?438.=20=E6=89=BE=E5=88=B0=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E4=B8=B2=E4=B8=AD=E6=89=80=E6=9C=89=E5=AD=97=E6=AF=8D=E5=BC=82?= =?UTF-8?q?=E4=BD=8D=E8=AF=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test009.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 test009.cpp diff --git a/test009.cpp b/test009.cpp new file mode 100644 index 0000000..81cbdcf --- /dev/null +++ b/test009.cpp @@ -0,0 +1,29 @@ +class Solution { +public: + bool checkCnt(vector& cnts, vector& cntp){ + for(int i = 0; i < 26; i++){ + if(cnts[i] != cntp[i]) return false; + } + return true; + } + vector findAnagrams(string s, string p) { + vector cntp(26); + for(char c:p){ cntp[c-'a']++; } + + vector ret; + vector cnts(26); + for(int i = 0; i < min(p.length(), s.length()); i++){ + cnts[s[i] - 'a']++; + } + + if(checkCnt(cnts, cntp)) { ret.push_back(0);} + + for(int r = p.length(); r < s.length(); r++){ + int l = r - p.length() + 1; + cnts[s[l-1] - 'a']--; + cnts[s[r] - 'a']++; + if(checkCnt(cnts, cntp)) { ret.push_back(l); } + } + return ret; + } +}; \ No newline at end of file