-3
votes

Façon trop longue des mots

C'est ma solution à la "façon trop longue" des mots "sur les coolforces. Même si je reçois la sortie correcte, mais il a toujours été signalé comme une mauvaise réponse à une question de Codeforces.

https://codeforces.com/problemset/problem/71/a (lien vers la question) xxx


1 commentaires

Quelle est ta question? Veuillez prendre le Tour pour mieux comprendre pourquoi Stackoverflow existe.


5 Réponses :


0
votes

Problème est avec la condition, vous ne sautez que des mots inférieurs à la longueur de 10 mais ne tenant pas compte des mots avec exactement de 10 longueurs.

 if(words[j].length()<=10)
 {
        System.out.print(words[j]);
 }


0 commentaires

0
votes

à l'intérieur de la boucle pour Int J Faites quelque chose comme ça -

if(words[j].length()<=10) //boundary check
        {
            System.out.print(words[j]);
        }

        else
        {
            System.out.println(words[j].charAt(0).toString() + words[j].length()-2 + words[j].charAt(words[j].length()-1).toString());
        }


0 commentaires

0
votes
Because where r you entering string in your program. Once you run, you will get to know.
Btw this is the solution of actual problem.
 public static void main(String[] args){
String str=null;
        int count=0;
        Scanner scanner= new Scanner(System.in);
        System.out.println("enter string :");
        str=scanner.nextLine();
        for(int i=0; i<str.length(); i++) {
            count ++;
        }
        char first=str.charAt(0);
        char last=str.charAt(count-1);
        int num=count-2;
        System.out.println("abbreviation is :" +first+num+last); 
}

0 commentaires

0
votes
#include<iostream>
#include<string>
#include<sstream> 
using namespace std;

string change_abb(string str)
{
    string result;
  if(str.length()>10)
  {
      int k=str.length()-2;
      stringstream ss;  
      ss<<k;  
      string s;  
      ss>>s;
    result+=str[0];
    result+=s;
    result+=str[str.length()-1];
  }
  else
  {
      result=str;
  }
  return result;
}

int main()
{
  string in_str;
  int n;
  cin>>n;
  for(int i=0;i<n;i++)
  {
    cin>>in_str;
    cout<<change_abb(in_str)<<endl;
  }
}

1 commentaires

S'il vous plaît ne postez pas uniquement de code comme réponse, mais fournissez également une explication de votre code et de la manière dont il résout le problème de la question. Les réponses avec une explication sont généralement plus utiles et de meilleure qualité, et sont plus susceptibles d'attirer des upvotes.



0
votes

Voici ma réponse à Python 3 ( NOREFERRER"> Réponse acceptée par CODEFORDES )

n = int(input())
p=""
for i in range(n):
    s = input()
    if len(s)>10:
        p = s[0]+str((len(s)-2))+s[len(s)-1]
    else:
        p=s
    print(p)


0 commentaires