banner
cells

cells

为美好的世界献上 bug

2575. 文字列の可整除配列を見つける

2575. 文字列の可整除配列を見つける#

インデックスが 0 から始まる文字列wordwordが与えられます。長さはnnで、00から99までの数字で構成されています。また、正の整数mmも与えられます。

wordword可整除配列divdivは、長さがnnの整数配列であり、次の条件を満たします。

  • word[0,...,i]word[0,...,i]が表す数値mmで割り切れる場合、div[i]=1div[i] = 1
  • そうでない場合、div[i]=0div[i] = 0

wordwordの可整除配列を返します。

例 1:

入力:word = "998244353", m = 3
出力:[1,1,0,0,0,1,1,0,0]
説明:3で割り切れるのは4つの接頭辞のみです:"9""99""998244""9982443"

例 2:

入力:word = "1010", m = 10
出力:[0,1,0,1]
説明:10で割り切れるのは2つの接頭辞のみです:"10""1010"

ヒント:

  • 1<=n<=1051 <= n <= 10^5
  • word.length==nword.length == n
  • wordwordは数字00から99で構成されています
  • 1<=m<=1091 <= m <= 109

モジュロ演算#

class Solution {
public:
    vector<int> divisibilityArray(string word, int m) {
        vector<int> res;
        long long num = 0;
        for (const auto &c : word) {
            num = (num * 10 + (c - '0')) % m;
            res.push_back(num == 0);
        }
        return res;
    }
};
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。