Слишком длинные слова - PullRequest
       2

Слишком длинные слова

0 голосов
/ 08 февраля 2019

Это моё решение проблемы «слишком длинных слов» на codeforces.Несмотря на то, что я получаю правильный вывод, но все же он был сообщен как неправильный ответ на вопрос codeforces.

https://codeforces.com/problemset/problem/71/A (ссылка на вопрос)

import java.util.Scanner;


public class Main {

    public static void main(String[] args) {

        //charAt() is an inbuilt method which can read a string letter by letter
        Scanner input=new Scanner(System.in);
        int n;
        //System.out.println("how many words do you wish to enter?");
        n=input.nextInt();
        String[] words=new String[n+1];
        for(int i=0;i<n+1;i++)
        {
            words[i]=input.nextLine();
        }

        for(int j=0;j<n+1;j++)
        {
            if(words[j].length()<10)
            {
                System.out.print(words[j]);
            }

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

            System.out.print("\n");
        }

    }

}

Ответы [ 3 ]

0 голосов
/ 08 февраля 2019

Внутри цикла for для int j сделайте что-то вроде этого -

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 голосов
/ 08 февраля 2019
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 голосов
/ 08 февраля 2019

Проблема с условием, вы пропускаете слова длиной менее 10, но не учитываете слова с длиной 10.

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

Измените условие, оно должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...