Scala小算法

1.JewelsAndStones 宝石和石头

package com.csm.test_Sort

object JewelsAndStones {
  /** *
   * 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。
   *
   * J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。
   *
   * @param args
   */
  def main(args: Array[String]): Unit = {

    var J = Array("a", "A");
    var S = Array("s", "a", "d", "a", "f", "A", "g", "A", "g", "A", "A", "a");

    var sum = 0
    var a, b = 0
    for (a <- 0 until J.size; b <- 0 until S.size) {
      if (S(b).equals(J(a))) {
        sum = sum + 1
      }
    }
    println(sum)
  }

}

2.MoveZeroes  移动0到末尾

package com.csm.test_Sort

object MoveZeroes {

  /** *
   * 排序 并把0移到最后
   *
   * @param args
   */
  def main(args: Array[String]): Unit = {
    val arr1 = Array(1, 0, 3, 4, 0)

    //排序
    var a = 0
    var a1 = 0
    var b = 0
    for (a <- 0 until arr1.size - 1; a1 <- 0 until arr1.size - 1) {
      if (arr1(a1) > arr1(a1 + 1)) {
        b = arr1(a1)
        arr1(a1) = arr1(a1 + 1)
        arr1(a1 + 1) = b
      }
    }
    println("排序结果--" + arr1.toBuffer)


    //查询0的个数
    a = 0
    var c = 0

    var flag = true
    for (a <- 0 until arr1.size if flag == true) { //为了跳出for循环
      if (arr1(a) > 0) {
        c = a
        flag = false
      }
    }
    //移动0到末尾

    a = 0
    for (a <- 0 until arr1.size - c) {
      arr1(a) = arr1(a + c)
    }

    a = 0
    for (a <- 0 until c) {
      arr1(arr1.size - 1 - a) = 0
    }
    println("移动零后排序结果--" + arr1.toBuffer)

  }

}

3.RemoveDuplicatesFromSortedArray 移除重复元素

package com.csm.test_Sort

import scala.collection.mutable.ArrayBuffer

object RemoveDuplicatesFromSortedArray {

  /** *
   * 移除数组重复元素
   *
   * @param args
   */
  def main(args: Array[String]): Unit = {
    var arr1 = ArrayBuffer(11, 3, 4, 3, 4, 11, 5, 3, 7, 11);
    println(arr1.toBuffer)
    //排序
    var a = 0
    var a1 = 0
    var b = 0
    for (a <- 0 until arr1.size - 1; a1 <- 0 until arr1.size - 1) {
      if (arr1(a1) > arr1(a1 + 1)) {
        b = arr1(a1)
        arr1(a1) = arr1(a1 + 1)
        arr1(a1 + 1) = b
      }
    }
    println(arr1.toBuffer)
    //记录重复元数
    var arr2 = new Array[Int](arr1.size);
    a = 0
    for (a <- 0 until arr1.size - 1) {
      if (arr1(a) == arr1(a + 1)) {
        arr2(a + 1) = 1;
      }
    }
    println(arr2.toBuffer)
    a = 0
    for (a <- 0 until arr2.size) {
      if (arr2(arr2.size - 1 - a) == 1) {
        arr1.remove(arr2.size - 1 - a)
      }
    }
    println(arr1.toBuffer)
  }
}

4.ReversingString 反转字符串

package com.csm.test_Sort

object ReversingString {
  /** *
   * 反转字符串 (Reversing a string)
   * Logically, reversing is swapping the values from index 1 with index n, index 2 with index n-1, and so on.
   *
   * 从逻辑上讲,反向是将索引1中的值与索引n交换,将索引2中的值与索引n-1交换,依此类推。
   *
   * So, if the string is "IncludeHelp", then the reverse will be "pleHedulcnI".
   *
   * 因此,如果字符串为“ IncludeHelp” ,则反向为“ pleHedulcnI”
   *
   * @param args
   */


  def main(args: Array[String]): Unit = {
    var newString = "IncludeHelp"

    var revString = ""
    val n = newString.length()
    for (i <- 0 to n - 1) {
      revString = revString.concat(newString.charAt(n - i - 1).toString)
    }
    println(revString)
  }

}

5.SearchInsertPosition 查询元素在数组中的位置位置

package com.csm.test_Sort

object SearchInsertPosition {

  /** *
   * 寻找给定元素在数组中的位置,如果没有此元素的话给出插入的位置(数据应该是顺序的)
   *
   * @param args
   */
  def main(argSs: Array[String]): Unit = {


    var arry1 = Array(3, 4, 5, 7, 11)

    var a = 6

    var b = 0;
    var c = 0
    var flag = true
    for (b <- 0 until arry1.size if flag == true) {
      if (arry1(b) >= a) {
        c = b
        flag = false;
      }

    }

    println(c)

  }

}

6.Sort_age 固定列数据排序

package com.csm.test_Sort

import scala.collection.mutable.ArrayBuffer

object Sort_age {


  /** **
   * 集合中固定列的数据排序
   *
   * @param args
   */
  def main(args: Array[String]): Unit = {

    val array1 = Array("zhu", "yingyu", 98)
    val array2 = Array("zhu", "yuwen", 96)
    val array3 = Array("zhu", "shuxue", 99)

    val array4 = Array(array1, array2, array3)

    var array5 = new ArrayBuffer[Int];
    var a = 0
    for (a <- 0 until array4.size) {
      array5.append(array4(a)(2).toString.toInt)
    }
    println(array5.toBuffer)

    a = 0
    var a1 = 0
    var b = 0
    for (a <- 0 until array5.size - 1; a1 <- 0 until array5.size - 1) {
      if (array5(a1) > array5(a1 + 1)) {
        b = array5(a1)
        array5(a1) = array5(a1 + 1)
        array5(a1 + 1) = b
      }
    }
    println(array5.toBuffer)

  }

}

7.ToLowerCase 准化大小写

package com.csm.test_Sort

object ToLowerCase {


  /** *
   * 转为小写
   *
   * @param args
   */
  def main(args: Array[String]) {

    val result = "NIDHI".toLowerCase() //小写
    println(result)
    val result1 = "gEEKs".toUpperCase() //大写
    println(result1)
  }

}

8.ValidParentheses 括号匹配

package com.csm.test_Sort

import scala.collection.mutable.ArrayBuffer

object ValidParentheses {

  /** *
   * ([[]()])  括号的匹配
  * 给定一个只包括 ‘(‘,’)’,'{‘,’}’,'[‘,’]’ 的字符串,判断字符串是否有效。
   *
   * 有效字符串需满足:
   *
   * 左括号必须用相同类型的右括号闭合。
   * 左括号必须以正确的顺序闭合。
   * 注意空字符串可被认为是有效字符串。
   *
   * @param args
   */
  def main(args: Array[String]): Unit = {

    println(getValid())
  }

  def getValid(): Boolean = {
    var arry1 = Array("(", ")", "{", "}", "[", "]")

    var arry2 = Array("(", "{", "[")
    var arry3 = Array(")", "}", "]")
    var arry4 = new ArrayBuffer[String];
    var returnFlag = true;
    if (arry1.size == 0) {
      return returnFlag;
    }
    var a = 0;
    var b = 0;
    for (a <- 0 until arry1.size; b <- 0 until arry2.size) {
      if (arry1(a).equals(arry2(b))) {
        arry4.append(arry1(a))
      }
      if (arry1(a).equals(arry3(b))) {
        if (arry4(arry4.size - 1).equals(arry2(b))) {
          arry4.remove(arry4.size - 1)
        } else {
          returnFlag = false
          return returnFlag;
        }
      }

    }
    if (arry4.size > 0) {
      returnFlag = false
    }
    return returnFlag
  }
}

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悲喜物外

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值