思想
从后往前k个一组k个一组,满k个就用'-'分隔 ,最后还剩多少都归最后一组,然后把答案反转一下就可以了:
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;cin>>s;
int k;cin>>k;
int len=0;
string ans;
for(int i=s.size()-1;i>=0;i--)
{
if(s[i]=='-')continue;
if (s[i] >= 'a' && s[i] <= 'z')s[i]-=32;
ans+=s[i]; len++;
if(len%k==0&&i!=0)
{
ans+='-';
}
}
reverse(ans.begin(),ans.end());
cout<<ans<<endl;
return 0;
}