11 条题解
-
1
#include <bits/stdc++.h> using namespace std; const int N=10000; int b[N]; int main() { memset(b,0,sizeof(b)); string a; cin>>a; int lena=a.length(); for(int i=0;i<=lena-1;i++) { b[(int)a[i]]++; } char k[N]; int o=1; for(int i=0;i<=lena-1;i++) { char j=a[i]; k[o]=j; if(a[i+1]!=j) { o++; } } for(int i=1;i<=o;i++) { for(int g=0;g<=1000;g++) { if(char(g)==k[i]&&b[g]!=0) { cout<<b[g]<<k[i]; } } } }
莫名奇妙过了?
-
1
思想:哈希表(桶思想)
C++
#include <bits/stdc++.h> using namespace std; typedef pair<char,int> pci; unordered_map<char,int> h; vector<pci> v; int main() { string s; cin >> s; for(auto x:s) { if(h[x] == 0) { pci t = {x,1}; v.push_back(t); h[x] = v.size(); } else v[v.size()-1].second++; } for(auto x:v) cout << x.second << x.first; return 0; }
Python
v = [] h = {} s = input() for x in s: if x not in h: t = [x,1] v.append(t) h[x] = len(v) else: v[len(v)-1][1]+=1 for x in v: print(x[1],end = "") print(x[0],end = "")
-
0
string = input() out = "" j = string[0] time = 1 # 出现次数 k = 1 # 遍历次数 for i in string[1:]: if i == j: time += 1 if k == len(string) - 1: out += "{}{}".format(time,j) else: out += "{}{}".format(time,j) time = 1 if k == len(string) - 1: out += "{}{}".format(time,i) k += 1 j = i print(out)
-
-8
(⊙﹏⊙)
朴实无华
#include<bits/stdc++.h> #include<bits/stdc++.h> using namespace std; char n[10000]; int m[10000]; int main() { string a; cin >>a; n[0]='1'; int k=1; for(int i=0; i<a.length(); i++){ if(a[i]!=a[i-1]){ n[k]=a[i]; for(int j=i; j>-1; j++){ if(a[j]==n[k]){ m[k]++; } else{break;} } k++; } } k--; for(int i=1; i<=k; i++){ cout<<m[i]<<n[i]; } return 0; }
- 1
信息
- ID
- 795
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- (无)
- 递交数
- 1435
- 已通过
- 649
- 上传者