題目:2138. 將字符串拆分為若干長度為 k 的組
思路:字符串模擬,時間復雜度0(n)。
C++版本:
class Solution {
public:vector<string> divideString(string s, int k, char fill) {vector<string> v;int n=s.size();for(int i=0;i<n;i+=k){if(i+k<=n){v.push_back(s.substr(i,k));}else{string tmp=s.substr(i)+string(k-(n-i),fill);v.push_back(tmp);}}return v;}
};
JAVA版本:
class Solution {public String[] divideString(String s, int k, char fill) {int n=s.length();String[] v=new String[(n+k-1)/k];for(int i=0;i<n;i+=k){if(i+k<=n){v[i/k]=s.substring(i,i+k);}else{String tmp=s.substring(i)+String.valueOf(fill).repeat(k-(n-i));v[i/k]=tmp;}}return v;}
}
Go版本:
func divideString(s string, k int, fill byte) []string {n:=len(s)v:=make([]string,(n+k-1)/k)for i:=0;i<n;i+=k {if i+k<=n {v[i/k]=s[i:i+k]}else{v[i/k]=s[i:]+strings.Repeat(string(fill),k-(n-i))}}return v
}