首页 > 试题广场 >

单词缩写

[编程题]单词缩写
  • 热度指数:6375 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

在日常书面表达中,我们经常会碰到很长的单词,比如"localization"、"internationalization"等。为了书写方便,我们会将太长的单词进行缩写。这里进行如下定义:

如果一个单词包含的字符个数达到或者超过10则我们认为它是一个长单词。所有的长单词都需要进行缩写,缩写的方法是先写下这个单词的首尾字符,然后再在首尾字符中间写上这个单词去掉首尾字符后所包含的字符个数。比如"localization"缩写后得到的是"l10n","internationalization"缩写后得到的是"i18n"。现给出n个单词,将其中的长单词进行缩写,其余的按原样输出。


输入描述:
第一行包含要给整数n。1≤n≤100

接下来n行每行包含一个由小写英文字符构成的字符串,字符串长度不超过100。


输出描述:
按顺序输出处理后的每个单词。
示例1

输入

4
word
localization
internationalization
pneumonoultramicroscopicsilicovolcanoconiosis

输出

word
l10n
i18n
p43s

python三行

for _ in range(int(input())):
    word = input()
    print(word if len(word) < 10 else word[0] + str(len(word) - 2) + word[-1])

注意题目中的描述超过10个,其实也是包括10个的,出题人语文没学好:(

发表于 2019-02-24 11:38:13 回复(0)
更多回答
#include<iostream>
#include<cstring>
using namespace std;
int main(){
    int n;
    cin>>n;
    for(int i=0;i<n;i++){
        char ch[100];
        cin>>ch;
        if(strlen(ch)>=10)
            cout<<ch[0]<<strlen(ch)-2<<ch[strlen(ch)-1]<<endl;
        else
            cout<<ch<<endl;
    }
}

发表于 2019-02-11 20:35:25 回复(1)
n=int(input())
for i in range(n):
    v=input()
    if len(v)>=10:
        print(v[0]+str(len(v)-2)+v[-1])
    else:
        print(v)
    

发表于 2020-06-12 12:09:48 回复(0)
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    string s[n];
    for(int i=0;i<n;i++)
        cin>>s[i];
    for(int i=0;i<n;i++)
    {
        if(s[i].size()>=10)
            cout<<s[i][0]<<s[i].size()-2<<s[i][s[i].size()-1]<<endl;
        else
            cout<<s[i]<<endl;
    }
    return 0;
}

发表于 2019-06-28 14:30:52 回复(0)
#include <bits/stdc++.h>
using namespace std;
int main(){
    int T; cin >> T;
    while (T--) {
        string s; cin >> s;
        int s_len = s.length();
        if (s_len >= 10) {
            string out = ""; out += s[0] + to_string(s_len-2) + s[s_len-1];
            s = out;
        }
        cout << s << endl;
    }
}
发表于 2019-02-08 22:04:29 回复(0)
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        string temp;
        cin >> temp;
        int len = temp.length();
        if(len < 10)
        {
            cout << temp << endl;
        }
        else
        {
            cout << temp[0] << len-2 << temp[len-1] << endl;
        }
    }
    return 0;
}

发表于 2019-01-10 14:47:30 回复(0)
#include <iostream>
using namespace std;

int main() {
    int n=0;
    cin>>n;
    string s;
    while(n--)
    {
        cin>>s;
        if(s.length()<10)
        {
            cout<<s<<endl;
        }
        else 
        {
            string val;
            val+=s[0];
            char temp=s[s.length()-1];
            int len=s.length()-2;
            val+=to_string(len);
            val+=temp;
            cout<<val<<endl;
        }
    }
}

发表于 2023-08-29 18:11:53 回复(0)
package main

import (
    "fmt"
)

func main() {
    var t int
    fmt.Scan(&t)
    var s string
    for t>0{
        fmt.Scan(&s)
        if len(s)<10{
            fmt.Println(s)
        }else{
            fmt.Printf("%v%d%v\n",string(s[0]),len(s)-2,string(s[len(s)-1]))
        }
        t--
    }
}

发表于 2023-03-18 02:10:59 回复(0)
#include <iostream>
using namespace std;

int main() {
    int n = 0;
    cin>>n;
    while(n>0)
    {
        string s;
        cin>>s;
        int size = s.size();
        if(size>=10)
            cout<<s[0]<<size-2<<s[size-1]<<endl;
        else
            cout<<s<<endl;
        n--;
    }   
    return 0;   
}

发表于 2022-12-31 21:16:11 回复(0)
#include <iostream>
#include <string>
using namespace std;
string func(string str)
{
    int len = str.length();
    if (len < 10)
    {
        return str;
    }
    else
    {
        //string head = to_string((str[0]));
        char head = (str[0]);
        char tail = (str[len - 1]);
        string len1 = to_string(len - 2);
        return head + len1 + tail;
    }
}
int main()
{
    int n = 0, i = 0;
    string input = "1";
    cin >> n;
    int m = n;
    string str[100];
    while (n)
    {
        cin >> input;
        str[i] = func(input);
        n--;
        i++;
    }
    for (int i = 0; i < m; i++)
    {
        cout << str[i] << endl;
    }
    return 0;
}


发表于 2022-09-01 03:28:30 回复(0)
#include <stdio.h>
#include <string.h>
int main()
{     int  n;     
      char str[100];
        while(scanf("%d",&n)!=EOF)    
        {         
            for(int i=0;i<n;i++)       
            {             
                scanf("%s",str);             
                if(strlen(str)>=10)                               
                    printf("%c%d%c\n",str[0],strlen(str)-2,str[strlen(str)-1]);                          
                else                           
                    printf("%s\n",str);                   
            }     
        }     
 return 0;
}

发表于 2022-07-19 11:43:35 回复(0)
法律中“以上”“以下”均含本数【手动狗头】。
#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin >> n;
    for(int i = 1;i <= n;i++){
        string str;
        cin >> str;
        if(str.size()<10){
            cout << str << endl;
            continue;
        }
        cout << str[0] << str.size()-2 << str[str.size()-1] << endl;
    }
    return 0;
}


发表于 2020-07-31 21:04:55 回复(0)
 import java.util.*;

public class Main {

    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        while (scanner.hasNext()) {
            int n=scanner.nextInt();
            String string[]=new String[n];
            for(int i=0;i<n;i++){
                string[i]=scanner.next();
                if (string[i].length()<10){
                    System.out.println(string[i]);
                    continue;
                } else {
                    string[i]=string[i].charAt(0)+""+(string[i].length()-2)+string[i].charAt(string[i].length()-1);
                }
                System.out.println(string[i]);
            }

        }

    }
    public static  int cal(int submit,int pass){
        float s=pass/submit;
        System.out.println(s);
        if(s>=0&&s<=0.3){
           return 5;
        }else if(s>0.3&&s<=0.6){
            return 4;
        }else if(s>0.6&&s<=1){
            return 3;
        }
        return -1;
    }

}
class G{
    public String name;
    public int submit;
    public int pass;
    public int nan;
    public G(String name,int submit,int pass){
        this.name=name;
        this.submit=submit;
        this.pass=pass;
        this.nan=0;
    }

}
class Mycomparator implements Comparator<G>{
    @Override
    public int compare(G o1, G o2) {
        return o1.name.compareTo(o2.name);
    }
}







发表于 2019-06-20 18:08:49 回复(0)
if __name__ == "__main__":
    n = int(raw_input())
    for i in range(n):
        s = raw_input()
        if len(s)>=10:
            print s[0]+str(len(s)-2)+s[-1]
        else:
            print s

发表于 2019-05-14 10:34:04 回复(0)
#include<iostream>
#include<stdio.h>
#include<vector>
#include<string>
using namespace std;

int main()
{
    int n;
    cin >> n;
    getchar();//数字与字符串之间一定处理好空格、换行
    vector<string> vs;
    string strtemp;
    for(int i = 0; i < n; i++)
    {
        getline(cin,strtemp);
        if(strtemp.size() >= 10)
            vs.push_back(strtemp[0] + to_string(strtemp.size()-2) + strtemp[strtemp.size()-1]);
        else
            vs.push_back(strtemp);
    }

    for (int i = 0; i < vs.size(); i++)
    {
        cout << vs[i] << endl;
    }
    return 0;
}

发表于 2019-04-10 10:00:22 回复(0)
while True:
    try:
        n_sample = input()
        while n_sample:
            i_word=raw_input().strip()
            if  len(i_word)<10:
                print(i_word)
            else:
                t=str(len(i_word)-2)
                res=i_word[0]+t+i_word[-1]
                print(res)
                n_sample=n_sample-1
    except:
        break

发表于 2019-03-21 18:46:43 回复(0)
import java.util.*;
public class Main{
    public static void main(String[] args){
      Scanner sc=new Scanner(System.in);
       int n=sc.nextInt();  
       for(int i=0;i<n;i++){
        String s=sc.next();
        if(s.length()>=10)
            System.out.println(s.charAt(0)+(s.length()-2+"")+s.charAt(s.length()-1));
        else System.out.println(s);
    }
    }
}

发表于 2019-03-21 18:28:27 回复(0)
#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main() {
    int n = 0;
    cin >> n;
    while (n--) {
        string str;
        cin >> str;
        if (str.size() < 10) {
            cout << str << endl;
        } else {
            cout << str[0] << str.size() - 2 << str.back() << endl;
        }

    }
    return 0;
} 
编辑于 2019-03-09 14:17:23 回复(0)
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String nStr=sc.nextLine();
        int n=Integer.parseInt(nStr);
        String[] strs = new String[n];

        String str = null;
        
        for (int i = 0; i < n; i++) {
            str = sc.nextLine();
            strs[i] = str;
        }
        for (int i = 0; i < strs.length; i++) {
            
            str = strs[i];
            if(str.length()>=10){
                char first = str.charAt(0);
                char last = str.charAt(str.length() - 1);
                Integer len = str.length() - 2;
                strs[i] = first + len.toString() + last;
            }
        }
        for (String s: strs) {
            System.out.println(s);
        }
    }
}
编辑于 2019-03-02 11:03:55 回复(0)
#include<iostream>
#include<string>
#include<vector>
#include<iterator>
using std::string;
using std::vector;
int main()
{
 vector<string> v1;
 int tme;
 std::cin>>tme;
 string str;
 for(int n=0;n<tme;n++)
 {
  std::cin>>str;
  v1.push_back(str);
 }
 vector<string>::iterator iter1=v1.begin();
 while(iter1!=v1.end())
 {
  int i=(*iter1).size();
  if(i<10)std::cout<<*iter1<<std::endl;
  else
  {
   std::cout<<*((*iter1).begin())<<(*iter1).size()-2<<*((*iter1).end()-1)<<std::endl;
  }
  iter1++;
 }
 return 0;//有点蛋疼,条件居然是<10而不是<=10
}

发表于 2019-02-16 13:52:49 回复(0)

问题信息

上传者:小小
难度:
28条回答 5241浏览

热门推荐

通过挑战的用户

查看代码