ks

1.标题:字符串中找出连续最长的数字串|时间限制:1秒|内存限制:32768k读入一个字符串str,输出字符串str中连续最长的数字串

输入描述:个测试输入包含1个测试用例,一个字符串str,长度不超过255
输出描述:在一行内输出str中里连续最长的数字串

示例:
输入:abcd12345ed125ss123456789
输出:123456789

(https://www.nowcoder.com/questionTerminal/bd891093881d4ddf9e56e7cc8416562d?orderByHotValue=0&page=1&onlyReference=false)

import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        String[] arr = s.split("[\\D]+");
        String result="";
        int max = 0;
        for(int i=0;i<arr.length;i++){
            if(arr[i].length()>max){
                max=arr[i].length();
                result = arr[i];
            }
        }
        System.out.println(result);
    }
}

2.标题:倒置字符串|时间限制:1秒|内存限制:32768k讲一句话的单词进行倒置,标点不倒置。比如i like bejing.经过函数后变为:beijing.like 
i
输入描述:每个测试输入包含1个测试用例:i like beijing 输入用例长度不超过100
输出描述:依次输出倒置之后的字符串,以空格分割

示例:
输入:I like beijing.
输出:beijing.like I

(https://www.nowcoder.com/questionTerminal/ee5de2e7c45a46a090c1ced2fdc62355)

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        StringBuffer buf = new StringBuffer();
        while(sc.hasNext()){
            buf.append(sc.next());
            buf.append(" ");
        }
        String str = buf.toString();
        String[] arr = str.split(" ");
        StringBuffer buffer = new StringBuffer();
        for (int i = arr.length-1; i >= 0; i--) {
            if (arr[i] != null && arr[i] != "") {
                buffer.append(arr[i]+" ");
            }
        }
        System.out.println(buffer.toString().trim());
    }
}

3.标题:寻找第K大|时间限制:3秒|内存限制:32768k有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数给定一个整数数组A,同时 
给定它的大小n和要找的K(K在1和n之间),请返回第K大的数,保证答案存在

样例:
[1,3,5,2,2],5,3
返回:2

(https://www.nowcoder.com/questionTerminal/e016ad9b7f0b45048c58a9f27ba618bf)

import java.util.*;
public class Finder {
    public int findKth(int[] a, int n, int K) {
                // write code here
             ArrayList<Integer> l = new ArrayList();
             for(int i = 0; i < a.length; i++){
                 l.add(a[i]);
             }
             Collections.sort(l);
             int index = l.size() -1;
             while(K>1){
                 int temp = l.get(index);
                 index--;
                 while(l.get(index) == temp){
                     index--;
                 }
                 K--;
             }
             return l.get(index);
         }
}

4.标题:求最小公倍数|时间限制:1秒|内存限制:32768k
正整数A和正整数B的最小公倍数是指能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数
输入描述:
输入两个正整数A和B
输出描述:
输出A和B的最小公倍数

扫描二维码关注公众号,回复: 4902133 查看本文章

示例:
输入:
5
7
输出:
35

(https://www.nowcoder.com/questionTerminal/22948c2cad484e0291350abad86136c3)

import java.util.Scanner;
public class Main {
    /**
     * 求最小公倍数:公式法
     * 两个数a,b的最小公倍数是a*b/gcd(a,b)
     * 由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积,即(a,b)× [a,b] = a × b
     * 所以,求两个数的最小公倍数,就可以先求出它们的最大公约数,然后用上述公式求出它们的最小公倍数。
     */
    public static int lcm(int m, int n) {
        return (m * n) / gcd(m, n);
    }
    /**
     * 求最大公约数:辗转相除法
     * 1\. a/b,令r为所得余数(0≤r<b) 若r=0,算法结束,a即为答案
     * 2\. 互换:置 a←b,b←r,并返回第一步
     */
    private static int gcd(int a, int b) {
        if (b == 0) return a;
        return gcd(b, a % b);
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();
        int b = in.nextInt();
        System.out.println(lcm(a, b));
    }
}

5.标题:计算日期到天数转换|时间限制:1秒|内存限制:32768K
根据输入的日期。计算是这一年的第几天
详细描述:
输入某年某月某日,判断这一天是这一年的第几天?
接口设计及说明:
/**********************************
Descrription:数据转换
Input Param:year输入年份
Month输入月份
Day输入天
OutParam:
Return Value:成功返回0,失败返回-1(如:数据错误)
************************************/
public static int iConverDateToDay(int year,int month,int day)
{
/*在这里实现功能,将结果填入输入数组中*/
return 0;
}
/**************************************************************
Description:
Input Param:

OutParam:
Return Value:成功:返回outDay输入计算后的第几天;
失败:返回-1
****************************************************************/
public static int getOutDay()
{
return 0;
}

输入描述:
输入三行,分别是年,月,日
输出描述:
成功:返回outDay输出计算后的第几天;
失败:返回-1

示例:
输入: 2012
12
31
输出:
366

(https://www.nowcoder.com/questionTerminal/769d45d455fe40b385ba32f97e7bcded?pos=16&orderByHotValue=1)

import java.time.DateTimeException;
import java.time.LocalDate;
import java.util.Scanner;
public class Main
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextInt())
        {
            try {
                System.out.println(LocalDate.of(sc.nextInt(), sc.nextInt(), sc.nextInt()).getDayOfYear());
            } catch (DateTimeException e) {
                System.out.println(-1);
            }
        }
 
        sc.close();
    }
 
}

6.标题:[中级]单词倒排|时间限制:1秒|内存限制:32768k
对字符串中的所用单词进行倒排
说明:
1.每个单词是以26个大写或小写英文字母构成;
2.非构成单词的字符均视为单词间隔符
3.要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;
4.每个单词最长20个字母;

输入描述:
输入一行以空格来分隔的句子
输出描述:
输出句子的逆序

示例:
输入:i am a student
输出:student a am i

(https://www.nowcoder.com/questionTerminal/81544a4989df4109b33c2d65037c5836)

import java.util.Scanner;
public class Main
{
 
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        String[] sp = sc.nextLine().split("[^a-zA-Z]+");
        StringBuilder sb = new StringBuilder();
        for (int i = sp.length - 1; i >= 0; i--)
            sb.append(sp[i] + " ");
        System.out.println(sb.toString().trim());
        sc.close();
    }
 
}

7.标题:删除字符串中出现次数最少的字符|时间限制:1秒|内存限制:32768k
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其他字符保持原来的顺序
输入描述:
字符串只包含小写英文字母,不考虑非法输入,输入的字符串长度小于等于20个字节
输出描述:
删除字符串中出现最少的字符后的字符串

示例:
输入:abcdd
输出:dd

(https://www.nowcoder.com/questionTerminal/05182d328eb848dda7fdd5e029a56da9?orderByHotValue=1&page=6&onlyReference=false)

import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        while(cin.hasNext()) {
            int[] num = new int[26];
            String line = cin.nextLine();
            for(int i=0; i<line.length(); i++) {
                char c = line.charAt(i);
                int n = (int)(c - 'a');
                num[n] ++;
            }
            int min = Integer.MAX_VALUE;
            for(int i=0; i<26; i++) {
                if(num[i] != 0 && num[i] < min) {
                    min = num[i];
                }
            }
            for(int i=0; i<line.length(); i++) {
                char c = line.charAt(i);
                int n = (int)(c - 'a');
                if(num[n] != min) {
                    System.out.print(c);
                }
            }
            System.out.println();
        }
    }
}

-8.标题:字符串反转|时间限制:1秒|内存限制:32668k
写出一个程序,接受一个字符串,然后输出该字符串翻转后的字符串。例如:
输入描述:
输入N个字符
输出描述:
输出该字符串反转后的字符串

示例:
输入:abcd
输出:dcba

#include<iostream>
#include<cstring>
#include<string>
#include<set>
using namespace std;
 
int main()
{
    char s[512];
    while(cin.getline(s,512))
    {
        int i;
        int length=strlen(s);
        for(i=length-1; i>=0; i--)
            cout<<s[i];
        cout<<endl;
    }
}

9.标题:奇数位丢弃|时间限制:1秒|内存限制:32768k
对于一个由0..n的所有数按升序组成的序列,我们要进行一些筛选,每次我们取当前所有数字中从小到大的第奇数位个的数,并将其丢弃。重复这一 
过程直到最后剩下一个数。请求出最后剩下的数字。
输入描述:
每个数据一行一个数字,为题目中的n(n小于等于1000)
输出描述:
一行输出最后剩下的数字

示例:
输入:500
输出:255

(https://www.nowcoder.com/questionTerminal/196141ecd6eb401da3111748d30e9141?source=relative)

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int n = sc.nextInt();
            List<Integer> list = new ArrayList<Integer>();
            for (int i = 0; i <= n; i ++ )
                list.add(i);
            while (list.size() != 1) {
                // 从0开始list移除一次,i再加一次,i始终指向奇数位
                for (int i = 0; i < list.size(); i = i + 1)
                    list.remove(i);
            }
            System.out.println(list.get(0));
        }
    }
}

10.标题:阶乘尾零|时间限制:3秒|内存限制:32768k
请设计一个算法,计算n的阶乘有多少个尾随零
给定一个int n,请返回n的阶乘的尾零个数。保证n为正整数

示例:
输入:5
返回:1

(https://www.nowcoder.com/questionTerminal/434922f9f4724b97b83c417e884008f1)

import java.util.*;

public class Factor {
    public int getFactorSuffixZero(int n) {
            int count =0;
            while(n>=5){
                count+=n/5;
                n=n/5;
            }
            return count;
  }
}

猜你喜欢

转载自www.cnblogs.com/77yaer/p/10263926.html
ks
今日推荐