java多线程    Java入门    vsftp    ftp    linux配置    centos    FRP教程    HBase    Html5缓存    webp    zabbix    分布式    neo4j图数据库    

华为上机练习面试题二

题目:
有n 个人围城一圈每次从1数起数到3就把那个人提出圈子,最后只保留一个人。
输入: 输入人数字符串
输出:把最后一个人所保留位置返回出来。
比如你输入11 的话即有11个人 [1,2,3,4,5,6,7,8,9,10,11] 。返回的是7.
如果输入"123a" 的话,返回的是"0"。

package com.javaer.huawei;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class TestJosephRing {

    public static void main(String args[]){
        String n = "11";
        TestJosephRing tj = new TestJosephRing();
        System.out.println(tj.getTheLeftPerson(n));
    }
    
    public int getTheLeftPerson(String num){
        
        Pattern p = Pattern.compile("[a-zA-Z]|\\p{Punct}");//处理非法字符
        Matcher m = p.matcher(num);
        if(m.find()){
            return 0;
        }
        
        int n = Integer.parseInt(num);
        List pL = new ArrayList();
        for(int i=0; i


This entry was posted in JAVA and tagged , . Bookmark the permalink.
月小升QQ 2651044202, 技术交流QQ群 178491360
首发地址:月小升博客https://java-er.com/blog/huawei-mianshi/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
您的评论是我写作的动力.

One Response to 华为上机练习面试题二

  1. 这个题目我们以前做过的

Leave a Reply